summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--iseq.c5
2 files changed, 9 insertions, 1 deletions
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 <tmm1@ruby-lang.org>
+
+ * 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 <nobu@ruby-lang.org>
* 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;