aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortmm1 <tmm1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-10-29 02:11:26 +0000
committertmm1 <tmm1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-10-29 02:11:26 +0000
commit29dbed183e78db090032ae6d854aa44e34652bba (patch)
tree53fa8e409b613a1fbb1cda1e9e285e3467ffaa56
parentfb3bd5a18a335b0f318bf30d246403caeabf344b (diff)
downloadruby-29dbed183e78db090032ae6d854aa44e34652bba.tar.gz
* gc.c (gc_profile_total_time): fix off-by-one error in GC::Profiler.total_time.
* test/ruby/test_gc.rb (class TestGc): test for above. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43457 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog6
-rw-r--r--gc.c2
-rw-r--r--test/ruby/test_gc.rb10
3 files changed, 17 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 1cf2c8df86..06d17318d0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Tue Oct 29 11:10:08 2013 Aman Gupta <ruby@tmm1.net>
+
+ * gc.c (gc_profile_total_time): fix off-by-one error in
+ GC::Profiler.total_time.
+ * test/ruby/test_gc.rb (class TestGc): test for above.
+
Tue Oct 29 09:53:00 2013 Charlie Somerville <charliesome@ruby-lang.org>
* insns.def, vm.c, vm_insnhelper.c, vm_insnhelper.h, vm_method.c: split
diff --git a/gc.c b/gc.c
index 415cc708db..a570ae3810 100644
--- a/gc.c
+++ b/gc.c
@@ -6140,7 +6140,7 @@ gc_profile_total_time(VALUE self)
if (objspace->profile.run && objspace->profile.next_index > 0) {
size_t i;
- size_t count = objspace->profile.next_index - 1;
+ size_t count = objspace->profile.next_index;
for (i = 0; i < count; i++) {
time += objspace->profile.records[i].gc_time;
diff --git a/test/ruby/test_gc.rb b/test/ruby/test_gc.rb
index dfe5e31cfb..4218dab888 100644
--- a/test/ruby/test_gc.rb
+++ b/test/ruby/test_gc.rb
@@ -166,6 +166,16 @@ class TestGc < Test::Unit::TestCase
eom
end
+ def test_profiler_total_time
+ GC::Profiler.enable
+ GC::Profiler.clear
+
+ GC.start
+ assert_operator(GC::Profiler.total_time, :>, 0)
+ ensure
+ GC::Profiler.disable
+ end
+
def test_finalizing_main_thread
assert_in_out_err(%w[--disable-gems], <<-EOS, ["\"finalize\""], [], "[ruby-dev:46647]")
ObjectSpace.define_finalizer(Thread.main) { p 'finalize' }