src/share/vm/classfile/metadataOnStackMark.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8055008_3 Sdiff src/share/vm/classfile

src/share/vm/classfile/metadataOnStackMark.hpp

Print this page




  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #ifndef SHARE_VM_CLASSFILE_METADATAONSTACKMARK_HPP
  26 #define SHARE_VM_CLASSFILE_METADATAONSTACKMARK_HPP
  27 
  28 #include "memory/allocation.hpp"
  29 
  30 class Metadata;
  31 
  32 // Helper class to mark and unmark metadata used on the stack as either handles
  33 // or executing methods, so that it can't be deleted during class redefinition
  34 // and class unloading.
  35 // This is also used for other things that can be deallocated, like class
  36 // metadata during parsing, relocated methods, and methods in backtraces.
  37 class MetadataOnStackMark : public StackObj {
  38   NOT_PRODUCT(static bool _is_active;)
  39  public:
  40   MetadataOnStackMark();
  41   ~MetadataOnStackMark();
  42   static void record(Metadata* m);
  43 };
  44 
  45 #endif // SHARE_VM_CLASSFILE_METADATAONSTACKMARK_HPP


  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #ifndef SHARE_VM_CLASSFILE_METADATAONSTACKMARK_HPP
  26 #define SHARE_VM_CLASSFILE_METADATAONSTACKMARK_HPP
  27 
  28 #include "memory/allocation.hpp"
  29 
  30 class Metadata;
  31 
  32 // Helper class to mark and unmark metadata used on the stack as either handles
  33 // or executing methods, so that it can't be deleted during class redefinition
  34 // and class unloading.
  35 // This is also used for other things that can be deallocated, like class
  36 // metadata during parsing, relocated methods, and methods in backtraces.
  37 class MetadataOnStackMark : public StackObj {
  38   NOT_PRODUCT(static bool _is_active;)
  39  public:
  40   MetadataOnStackMark(bool has_redefined_a_class);
  41   ~MetadataOnStackMark();
  42   static void record(Metadata* m);
  43 };
  44 
  45 #endif // SHARE_VM_CLASSFILE_METADATAONSTACKMARK_HPP
src/share/vm/classfile/metadataOnStackMark.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File