src/hotspot/share/oops/oopsHierarchy.hpp
changeset 57777 90ead0febf56
parent 54786 ebf733a324d4
child 57875 427b38332f20
equal deleted inserted replaced
57774:21dccfac0ec5 57777:90ead0febf56
    37 
    37 
    38 // If compressed klass pointers then use narrowKlass.
    38 // If compressed klass pointers then use narrowKlass.
    39 typedef juint  narrowKlass;
    39 typedef juint  narrowKlass;
    40 
    40 
    41 typedef void* OopOrNarrowOopStar;
    41 typedef void* OopOrNarrowOopStar;
    42 typedef class   markOopDesc*                markOop;
       
    43 
    42 
    44 #ifndef CHECK_UNHANDLED_OOPS
    43 #ifndef CHECK_UNHANDLED_OOPS
    45 
    44 
    46 typedef class oopDesc*                            oop;
    45 typedef class oopDesc*                    oop;
    47 typedef class   instanceOopDesc*            instanceOop;
    46 typedef class   instanceOopDesc*            instanceOop;
    48 typedef class   arrayOopDesc*                    arrayOop;
    47 typedef class   arrayOopDesc*               arrayOop;
    49 typedef class     objArrayOopDesc*            objArrayOop;
    48 typedef class     objArrayOopDesc*            objArrayOop;
    50 typedef class     typeArrayOopDesc*            typeArrayOop;
    49 typedef class     typeArrayOopDesc*           typeArrayOop;
    51 
    50 
    52 #else
    51 #else
    53 
    52 
    54 // When CHECK_UNHANDLED_OOPS is defined, an "oop" is a class with a
    53 // When CHECK_UNHANDLED_OOPS is defined, an "oop" is a class with a
    55 // carefully chosen set of constructors and conversion operators to go
    54 // carefully chosen set of constructors and conversion operators to go
    80   oopDesc* _o;
    79   oopDesc* _o;
    81 
    80 
    82   void register_oop();
    81   void register_oop();
    83   void unregister_oop();
    82   void unregister_oop();
    84 
    83 
    85   // friend class markOop;
       
    86 public:
    84 public:
    87   void set_obj(const void* p)         {
    85   void set_obj(const void* p)         {
    88     raw_set_obj(p);
    86     raw_set_obj(p);
    89     if (CheckUnhandledOops) register_oop();
    87     if (CheckUnhandledOops) register_oop();
    90   }
    88   }
   119 #endif
   117 #endif
   120   operator HeapWord* () const         { return (HeapWord*)obj(); }
   118   operator HeapWord* () const         { return (HeapWord*)obj(); }
   121   operator oopDesc* () const volatile { return obj(); }
   119   operator oopDesc* () const volatile { return obj(); }
   122   operator intptr_t* () const         { return (intptr_t*)obj(); }
   120   operator intptr_t* () const         { return (intptr_t*)obj(); }
   123   operator PromotedObject* () const   { return (PromotedObject*)obj(); }
   121   operator PromotedObject* () const   { return (PromotedObject*)obj(); }
   124   operator markOop () const volatile  { return markOop(obj()); }
       
   125   operator address   () const         { return (address)obj(); }
   122   operator address   () const         { return (address)obj(); }
   126 
   123 
   127   // from javaCalls.cpp
   124   // from javaCalls.cpp
   128   operator jobject () const           { return (jobject)obj(); }
   125   operator jobject () const           { return (jobject)obj(); }
   129 
   126