Project

General

Profile

This project is closed and read-only.

Actions

Backport #8149

closed

[patch] iseq: remove duplicate strings for file paths

Backport #8149: [patch] iseq: remove duplicate strings for file paths

Added by tmm1 (Aman Karmani) over 13 years ago. Updated about 13 years ago.


Description

with:
./ruby -Ilib -e' GC.start; p ObjectSpace.each_object(String).to_a.select{ |s| s =~ /rubygems/defaults/ }.inject(Hash.new 0){|h,s| h[s]+=1; h} '

before:
{"/Users/test/code/ruby-trunk/lib/rubygems/defaults.rb"=>3}

after:
{"/Users/test/code/ruby-trunk/lib/rubygems/defaults.rb"=>1}

diff --git a/iseq.c b/iseq.c
index 288d3bf..72c92bd 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;

Updated by tmm1 (Aman Karmani) over 13 years ago Actions #1

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

This issue was solved with changeset r40334.
Aman, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.


iseq.c: remove duplicated strings for file paths

  • iseq.c (iseq_location_setup): re-use existing string when iseq has
    the same path and absolute_path. [Bug #8149]

Updated by tmm1 (Aman Karmani) over 13 years ago Actions #2

  • Tracker changed from Bug to Backport
  • Project changed from Ruby to 15
  • Status changed from Closed to Assigned
  • Assignee changed from ko1 (Koichi Sasada) to nagachika (Tomoyuki Chikanaga)

Updated by nagachika (Tomoyuki Chikanaga) about 13 years ago Actions #3

  • Status changed from Assigned to Closed

This issue was solved with changeset r42089.
Aman, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.


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]
Actions

Also available in: PDF Atom