diff --git a/ChangeLog b/ChangeLog index 09a75c5990..1fd2db96a7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Wed Apr 17 19:45:27 2013 Aman Gupta + + * iseq.c (iseq_location_setup): re-use existing string when iseq has + the same path and absolute_path. [Bug #8149] + Wed Apr 17 11:38:37 2013 Nobuyoshi Nakada * lib/test/unit/assertions.rb (Test::Unit::Assertions#assert): diff --git a/iseq.c b/iseq.c index ef6a7022df..63be78e37c 100644 --- a/iseq.c +++ b/iseq.c @@ -188,7 +188,10 @@ iseq_location_setup(rb_iseq_t *iseq, VALUE path, VALUE absolute_path, VALUE name { rb_iseq_location_t *loc = &iseq->location; loc->path = path; - loc->absolute_path = absolute_path; + if (RTEST(absolute_path) && rb_str_cmp(path, absolute_path) == 0) + loc->absolute_path = path; + else + loc->absolute_path = absolute_path; loc->label = loc->base_label = name; loc->first_lineno = first_lineno; return loc;