diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | eval.c | 2 | ||||
-rw-r--r-- | lib/profiler.rb | 2 |
3 files changed, 7 insertions, 2 deletions
@@ -1,3 +1,8 @@ +Thu Dec 8 00:40:52 2005 Yukihiro Matsumoto <matz@ruby-lang.org> + + * eval.c (call_trace_func): klass parameter should be a + class/module that defines calling method. [ruby-talk:169307] + Wed Dec 7 17:10:27 2005 Kazuhiro NISHIYAMA <zn@mbf.nifty.com> * sprintf.c (rb_f_sprintf): [ruby-dev:27967] @@ -2514,7 +2514,7 @@ call_trace_func(rb_event_t event, NODE *node, VALUE self, ID id, VALUE klass /* klass = RBASIC(klass)->klass; } else if (FL_TEST(klass, FL_SINGLETON)) { - klass = self; + klass = rb_iv_get(klass, "__attached__"); } } PUSH_TAG(PROT_NONE); diff --git a/lib/profiler.rb b/lib/profiler.rb index 9762fa1181..1067106be4 100644 --- a/lib/profiler.rb +++ b/lib/profiler.rb @@ -34,7 +34,7 @@ module_function total = Process.times[0] - @@start if total == 0 then total = 0.01 end data = @@map.values - data.sort!{|a,b| b[2] <=> a[2]} + data = data.sort_by{|x| x[2]} sum = 0 f.printf " %% cumulative self self total\n" f.printf " time seconds seconds calls ms/call ms/call name\n" |