6805748: Assertion "don't reset to 0 -- could be mistaken for never-executed" in CompilationPolicy
authorcoleenp
Fri, 20 Mar 2009 22:08:48 -0400
changeset 2266 fe08ea2948cf
parent 2265 56439ca57904
child 2267 2e18a3d0155b
6805748: Assertion "don't reset to 0 -- could be mistaken for never-executed" in CompilationPolicy Summary: Resetting the invocation counter for a method invocation event was setting count to zero for CompileThreshold=1, making it look like a never executed method. Reviewed-by: phh, kamg, acorn, never
hotspot/src/share/vm/interpreter/invocationCounter.cpp
--- a/hotspot/src/share/vm/interpreter/invocationCounter.cpp	Fri Mar 20 11:23:24 2009 -0400
+++ b/hotspot/src/share/vm/interpreter/invocationCounter.cpp	Fri Mar 20 22:08:48 2009 -0400
@@ -47,6 +47,8 @@
   // executed many more times before re-entering the VM.
   int old_count = count();
   int new_count = MIN2(old_count, (int) (CompileThreshold / 2));
+  // prevent from going to zero, to distinguish from never-executed methods
+  if (new_count == 0)  new_count = 1;
   if (old_count != new_count)  set(state(), new_count);
 }