< prev index next >

src/share/vm/runtime/handles.hpp

Print this page

        

*** 164,215 **** DEF_METADATA_HANDLE(method, Method) DEF_METADATA_HANDLE(constantPool, ConstantPool) - // Writing this class explicitly, since DEF_METADATA_HANDLE(klass) doesn't - // provide the necessary Klass* <-> Klass* conversions. This Klass - // could be removed when we don't have the Klass* typedef anymore. - class KlassHandle : public StackObj { - Klass* _value; - protected: - Klass* obj() const { return _value; } - Klass* non_null_obj() const { assert(_value != NULL, "resolving NULL _value"); return _value; } - - public: - KlassHandle() : _value(NULL) {} - KlassHandle(const Klass* obj) : _value(const_cast<Klass *>(obj)) {}; - KlassHandle(Thread* thread, const Klass* obj) : _value(const_cast<Klass *>(obj)) {}; - - Klass* operator () () const { return obj(); } - Klass* operator -> () const { return non_null_obj(); } - - bool operator == (Klass* o) const { return obj() == o; } - bool operator == (const KlassHandle& h) const { return obj() == h.obj(); } - - bool is_null() const { return _value == NULL; } - bool not_null() const { return _value != NULL; } - }; - - class instanceKlassHandle : public KlassHandle { - public: - /* Constructors */ - instanceKlassHandle () : KlassHandle() {} - instanceKlassHandle (const Klass* k) : KlassHandle(k) { - assert(k == NULL || is_instanceKlass(k), "illegal type"); - } - instanceKlassHandle (Thread* thread, const Klass* k) : KlassHandle(thread, k) { - assert(k == NULL || is_instanceKlass(k), "illegal type"); - } - /* Access to klass part */ - InstanceKlass* operator () () const { return (InstanceKlass*)obj(); } - InstanceKlass* operator -> () const { return (InstanceKlass*)obj(); } - - debug_only(bool is_instanceKlass(const Klass* k)); - }; - - //------------------------------------------------------------------------------------------------------------------------ // Thread local handle area class HandleArea: public Arena { friend class HandleMark; friend class NoHandleMark; --- 164,173 ----
< prev index next >