summaryrefslogtreecommitdiff
path: root/iseq.c
diff options
context:
space:
mode:
authornagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-07-20 14:45:51 +0000
committernagachika <nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-07-20 14:45:51 +0000
commit3207cfced7dc17d3971e76bb080aadae02b5eb2d (patch)
treee684d288d4b2ca79593ab7ec7bcdd31b75827ab8 /iseq.c
parent3cdf8cf91d17fae83b8ed5aafb6a4afab5ef2015 (diff)
merge revision(s) 40334: [Backport #8149]
* iseq.c (iseq_location_setup): re-use existing string when iseq has the same path and absolute_path. [Bug #8149] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@42089 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'iseq.c')
-rw-r--r--iseq.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/iseq.c b/iseq.c
index 567f9ea429..0af29391b0 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;