hotspot/src/share/vm/oops/method.cpp
changeset 29576 c223b0a9872e
parent 29316 5287df8a8972
child 30764 fec48bf5a827
--- a/hotspot/src/share/vm/oops/method.cpp	Tue Mar 10 19:56:19 2015 -0700
+++ b/hotspot/src/share/vm/oops/method.cpp	Fri Mar 13 12:40:39 2015 -0400
@@ -1970,9 +1970,10 @@
   // on stack means some method referring to it is also on the stack.
   constants()->set_on_stack(value);
 
-  bool succeeded = _access_flags.set_on_stack(value);
-  if (value && succeeded) {
-    MetadataOnStackMark::record(this, Thread::current());
+  bool already_set = on_stack();
+  _access_flags.set_on_stack(value);
+  if (value && !already_set) {
+    MetadataOnStackMark::record(this);
   }
 }