Mercurial > hg > truffle
comparison src/share/vm/oops/constantPoolOop.hpp @ 3461:81d815b05abb
7056328: JSR 292 invocation sometimes fails in adapters for types not on boot class path
Reviewed-by: never
author | jrose |
---|---|
date | Thu, 23 Jun 2011 17:14:06 -0700 |
parents | ed69575596ac |
children | 96c40b338c1a d2a62e0f25eb |
comparison
equal
deleted
inserted
replaced
3460:e9b51b4bdcc7 | 3461:81d815b05abb |
---|---|
101 | 101 |
102 void set_operands(typeArrayOop operands) { oop_store_without_check((oop*)&_operands, operands); } | 102 void set_operands(typeArrayOop operands) { oop_store_without_check((oop*)&_operands, operands); } |
103 | 103 |
104 enum FlagBit { | 104 enum FlagBit { |
105 FB_has_invokedynamic = 1, | 105 FB_has_invokedynamic = 1, |
106 FB_has_pseudo_string = 2 | 106 FB_has_pseudo_string = 2, |
107 FB_has_preresolution = 3 | |
107 }; | 108 }; |
108 | 109 |
109 int flags() const { return _flags; } | 110 int flags() const { return _flags; } |
110 void set_flags(int f) { _flags = f; } | 111 void set_flags(int f) { _flags = f; } |
111 bool flag_at(FlagBit fb) const { return (_flags & (1 << (int)fb)) != 0; } | 112 bool flag_at(FlagBit fb) const { return (_flags & (1 << (int)fb)) != 0; } |
177 typeArrayOop tags() const { return _tags; } | 178 typeArrayOop tags() const { return _tags; } |
178 typeArrayOop operands() const { return _operands; } | 179 typeArrayOop operands() const { return _operands; } |
179 | 180 |
180 bool has_pseudo_string() const { return flag_at(FB_has_pseudo_string); } | 181 bool has_pseudo_string() const { return flag_at(FB_has_pseudo_string); } |
181 bool has_invokedynamic() const { return flag_at(FB_has_invokedynamic); } | 182 bool has_invokedynamic() const { return flag_at(FB_has_invokedynamic); } |
183 bool has_preresolution() const { return flag_at(FB_has_preresolution); } | |
182 void set_pseudo_string() { set_flag_at(FB_has_pseudo_string); } | 184 void set_pseudo_string() { set_flag_at(FB_has_pseudo_string); } |
183 void set_invokedynamic() { set_flag_at(FB_has_invokedynamic); } | 185 void set_invokedynamic() { set_flag_at(FB_has_invokedynamic); } |
186 void set_preresolution() { set_flag_at(FB_has_preresolution); } | |
184 | 187 |
185 // Klass holding pool | 188 // Klass holding pool |
186 klassOop pool_holder() const { return _pool_holder; } | 189 klassOop pool_holder() const { return _pool_holder; } |
187 void set_pool_holder(klassOop k) { oop_store_without_check((oop*)&_pool_holder, (oop) k); } | 190 void set_pool_holder(klassOop k) { oop_store_without_check((oop*)&_pool_holder, (oop) k); } |
188 oop* pool_holder_addr() { return (oop*)&_pool_holder; } | 191 oop* pool_holder_addr() { return (oop*)&_pool_holder; } |
661 friend class constantPoolKlass; | 664 friend class constantPoolKlass; |
662 friend class ClassFileParser; | 665 friend class ClassFileParser; |
663 friend class SystemDictionary; | 666 friend class SystemDictionary; |
664 | 667 |
665 // Used by compiler to prevent classloading. | 668 // Used by compiler to prevent classloading. |
669 static methodOop method_at_if_loaded (constantPoolHandle this_oop, int which, | |
670 Bytecodes::Code bc = Bytecodes::_illegal); | |
666 static klassOop klass_at_if_loaded (constantPoolHandle this_oop, int which); | 671 static klassOop klass_at_if_loaded (constantPoolHandle this_oop, int which); |
667 static klassOop klass_ref_at_if_loaded (constantPoolHandle this_oop, int which); | 672 static klassOop klass_ref_at_if_loaded (constantPoolHandle this_oop, int which); |
668 // Same as above - but does LinkResolving. | 673 // Same as above - but does LinkResolving. |
669 static klassOop klass_ref_at_if_loaded_check(constantPoolHandle this_oop, int which, TRAPS); | 674 static klassOop klass_ref_at_if_loaded_check(constantPoolHandle this_oop, int which, TRAPS); |
670 | 675 |