359 // used by jvmti to track if the unload event has been reported
360 bool unload_reported() { return _unload_reported; }
361 void set_unload_reported() { _unload_reported = true; }
362
363 int get_state() const {
364 return _state;
365 }
366
367 void make_unloaded();
368
369 bool has_dependencies() { return dependencies_size() != 0; }
370 void flush_dependencies(bool delete_immediately);
371 bool has_flushed_dependencies() { return _has_flushed_dependencies; }
372 void set_has_flushed_dependencies() {
373 assert(!has_flushed_dependencies(), "should only happen once");
374 _has_flushed_dependencies = 1;
375 }
376
377 int comp_level() const { return _comp_level; }
378
379 // Support for oops in scopes and relocs:
380 // Note: index 0 is reserved for null.
381 oop oop_at(int index) const;
382 oop* oop_addr_at(int index) const { // for GC
383 // relocation indexes are biased by 1 (because 0 is reserved)
384 assert(index > 0 && index <= oops_count(), "must be a valid non-zero index");
385 assert(!_oops_are_stale, "oops are stale");
386 return &oops_begin()[index - 1];
387 }
388
389 // Support for meta data in scopes and relocs:
390 // Note: index 0 is reserved for null.
391 Metadata* metadata_at(int index) const { return index == 0 ? NULL: *metadata_addr_at(index); }
392 Metadata** metadata_addr_at(int index) const { // for GC
393 // relocation indexes are biased by 1 (because 0 is reserved)
394 assert(index > 0 && index <= metadata_count(), "must be a valid non-zero index");
395 return &metadata_begin()[index - 1];
396 }
397
|
359 // used by jvmti to track if the unload event has been reported
360 bool unload_reported() { return _unload_reported; }
361 void set_unload_reported() { _unload_reported = true; }
362
363 int get_state() const {
364 return _state;
365 }
366
367 void make_unloaded();
368
369 bool has_dependencies() { return dependencies_size() != 0; }
370 void flush_dependencies(bool delete_immediately);
371 bool has_flushed_dependencies() { return _has_flushed_dependencies; }
372 void set_has_flushed_dependencies() {
373 assert(!has_flushed_dependencies(), "should only happen once");
374 _has_flushed_dependencies = 1;
375 }
376
377 int comp_level() const { return _comp_level; }
378
379 void unlink_from_method(bool acquire_lock);
380
381 // Support for oops in scopes and relocs:
382 // Note: index 0 is reserved for null.
383 oop oop_at(int index) const;
384 oop* oop_addr_at(int index) const { // for GC
385 // relocation indexes are biased by 1 (because 0 is reserved)
386 assert(index > 0 && index <= oops_count(), "must be a valid non-zero index");
387 assert(!_oops_are_stale, "oops are stale");
388 return &oops_begin()[index - 1];
389 }
390
391 // Support for meta data in scopes and relocs:
392 // Note: index 0 is reserved for null.
393 Metadata* metadata_at(int index) const { return index == 0 ? NULL: *metadata_addr_at(index); }
394 Metadata** metadata_addr_at(int index) const { // for GC
395 // relocation indexes are biased by 1 (because 0 is reserved)
396 assert(index > 0 && index <= metadata_count(), "must be a valid non-zero index");
397 return &metadata_begin()[index - 1];
398 }
399
|