equal
deleted
inserted
replaced
102 // -1=too many args to fix, must parse the slow way. |
102 // -1=too many args to fix, must parse the slow way. |
103 // The real initial value is special to account for nonatomicity of 64 bit |
103 // The real initial value is special to account for nonatomicity of 64 bit |
104 // loads and stores. This value may updated and read without a lock by |
104 // loads and stores. This value may updated and read without a lock by |
105 // multiple threads, so is volatile. |
105 // multiple threads, so is volatile. |
106 volatile uint64_t _fingerprint; |
106 volatile uint64_t _fingerprint; |
|
107 volatile bool _is_conc_safe; // if true, safe for concurrent GC processing |
107 |
108 |
108 public: |
109 public: |
109 oop* oop_block_beg() const { return adr_method(); } |
110 oop* oop_block_beg() const { return adr_method(); } |
110 oop* oop_block_end() const { return adr_exception_table() + 1; } |
111 oop* oop_block_end() const { return adr_exception_table() + 1; } |
111 |
112 |
271 |
272 |
272 // Garbage collection support |
273 // Garbage collection support |
273 oop* adr_method() const { return (oop*)&_method; } |
274 oop* adr_method() const { return (oop*)&_method; } |
274 oop* adr_stackmap_data() const { return (oop*)&_stackmap_data; } |
275 oop* adr_stackmap_data() const { return (oop*)&_stackmap_data; } |
275 oop* adr_exception_table() const { return (oop*)&_exception_table; } |
276 oop* adr_exception_table() const { return (oop*)&_exception_table; } |
|
277 bool is_conc_safe() { return _is_conc_safe; } |
|
278 void set_is_conc_safe(bool v) { _is_conc_safe = v; } |
276 |
279 |
277 // Unique id for the method |
280 // Unique id for the method |
278 static const u2 MAX_IDNUM; |
281 static const u2 MAX_IDNUM; |
279 static const u2 UNSET_IDNUM; |
282 static const u2 UNSET_IDNUM; |
280 u2 method_idnum() const { return _method_idnum; } |
283 u2 method_idnum() const { return _method_idnum; } |