diff src/share/vm/runtime/handles.hpp @ 10135:5a9fa2ba85f0

8012907: anti-delta fix for 8010992 Summary: anti-delta fix for 8010992 until 8012902 can be fixed Reviewed-by: acorn, minqi, rdurbin
author dcubed
date Sun, 21 Apr 2013 20:41:04 -0700
parents 6f817ce50129
children f9be75d21404
line wrap: on
line diff
--- a/src/share/vm/runtime/handles.hpp	Fri Apr 19 11:08:52 2013 -0700
+++ b/src/share/vm/runtime/handles.hpp	Sun Apr 21 20:41:04 2013 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -280,10 +280,10 @@
 // If h has to be preserved, it can be converted to an oop or a local JNI handle
 // across the HandleMark boundary.
 
-// The only special case for HandleMark is when a Thread is created, the first
-// HandleMark of the Thread is allocated in heap.
+// The base class of HandleMark should have been StackObj but we also heap allocate
+// a HandleMark when a thread is created.
 
-class HandleMark : public StackObj {
+class HandleMark {
  private:
   Thread *_thread;              // thread that owns this mark
   HandleArea *_area;            // saved handle area
@@ -293,6 +293,7 @@
   // Link to previous active HandleMark in thread
   HandleMark* _previous_handle_mark;
 
+  void initialize(Thread* thread);                // common code for constructors
   void set_previous_handle_mark(HandleMark* mark) { _previous_handle_mark = mark; }
   HandleMark* previous_handle_mark() const        { return _previous_handle_mark; }
 
@@ -302,7 +303,6 @@
   HandleMark(Thread* thread)                      { initialize(thread); }
   ~HandleMark();
 
-  void initialize(Thread* thread);                // common code for constructors
   // Functions used by HandleMarkCleaner
   // called in the constructor of HandleMarkCleaner
   void push();