hotspot/src/share/vm/runtime/handles.hpp
changeset 14078 2b2b8833c422
parent 13728 882756847a04
child 14120 7d298141c258
equal deleted inserted replaced
13963:e5b53c306fb5 14078:2b2b8833c422
   108                                                  \
   108                                                  \
   109    public:                                       \
   109    public:                                       \
   110     /* Constructors */                           \
   110     /* Constructors */                           \
   111     type##Handle ()                              : Handle()                 {} \
   111     type##Handle ()                              : Handle()                 {} \
   112     type##Handle (type##Oop obj) : Handle((oop)obj) {                         \
   112     type##Handle (type##Oop obj) : Handle((oop)obj) {                         \
   113       assert(SharedSkipVerify || is_null() || ((oop)obj)->is_a(),             \
   113       assert(is_null() || ((oop)obj)->is_a(),                                 \
   114              "illegal type");                                                 \
   114              "illegal type");                                                 \
   115     }                                                                         \
   115     }                                                                         \
   116     type##Handle (Thread* thread, type##Oop obj) : Handle(thread, (oop)obj) { \
   116     type##Handle (Thread* thread, type##Oop obj) : Handle(thread, (oop)obj) { \
   117       assert(SharedSkipVerify || is_null() || ((oop)obj)->is_a(), "illegal type");  \
   117       assert(is_null() || ((oop)obj)->is_a(), "illegal type");                \
   118     }                                                                         \
   118     }                                                                         \
   119     \
   119     \
   120     /* Operators for ease of use */              \
   120     /* Operators for ease of use */              \
   121     type##Oop    operator () () const            { return obj(); } \
   121     type##Oop    operator () () const            { return obj(); } \
   122     type##Oop    operator -> () const            { return non_null_obj(); } \
   122     type##Oop    operator -> () const            { return non_null_obj(); } \
   199 class instanceKlassHandle : public KlassHandle {
   199 class instanceKlassHandle : public KlassHandle {
   200  public:
   200  public:
   201   /* Constructors */
   201   /* Constructors */
   202   instanceKlassHandle () : KlassHandle() {}
   202   instanceKlassHandle () : KlassHandle() {}
   203   instanceKlassHandle (const Klass* k) : KlassHandle(k) {
   203   instanceKlassHandle (const Klass* k) : KlassHandle(k) {
   204     assert(SharedSkipVerify || k == NULL || k->oop_is_instance(),
   204     assert(k == NULL || k->oop_is_instance(),
   205            "illegal type");
   205            "illegal type");
   206   }
   206   }
   207   instanceKlassHandle (Thread* thread, const Klass* k) : KlassHandle(thread, k) {
   207   instanceKlassHandle (Thread* thread, const Klass* k) : KlassHandle(thread, k) {
   208     assert(SharedSkipVerify || k == NULL || k->oop_is_instance(),
   208     assert(k == NULL || k->oop_is_instance(),
   209            "illegal type");
   209            "illegal type");
   210   }
   210   }
   211   /* Access to klass part */
   211   /* Access to klass part */
   212   InstanceKlass*       operator () () const { return (InstanceKlass*)obj(); }
   212   InstanceKlass*       operator () () const { return (InstanceKlass*)obj(); }
   213   InstanceKlass*       operator -> () const { return (InstanceKlass*)obj(); }
   213   InstanceKlass*       operator -> () const { return (InstanceKlass*)obj(); }