< prev index next >
src/hotspot/share/code/nmethod.hpp
Print this page
@@ -69,11 +69,10 @@
friend class JVMCINMethodData;
private:
// Shared fields for all nmethod's
int _entry_bci; // != InvocationEntryBci if this nmethod is an on-stack replacement method
- jmethodID _jmethod_id; // Cache of method()->jmethod_id()
// To support simple linked-list chaining of nmethods:
nmethod* _osr_link; // from InstanceKlass::osr_nmethods_head
// STW two-phase nmethod root processing helpers.
@@ -225,12 +224,13 @@
int _comp_level; // compilation level
// protected by CodeCache_lock
bool _has_flushed_dependencies; // Used for maintenance of dependencies (CodeCache_lock)
- // used by jvmti to track if an unload event has been posted for this nmethod.
+ // used by jvmti to track if an event has been posted for this nmethod.
bool _unload_reported;
+ bool _load_reported;
// Protected by CompiledMethod_lock
volatile signed char _state; // {not_installed, in_use, not_entrant, zombie, unloaded}
#ifdef ASSERT
@@ -480,14 +480,10 @@
return make_not_entrant_or_zombie(not_entrant);
}
bool make_not_used() { return make_not_entrant(); }
bool make_zombie() { return make_not_entrant_or_zombie(zombie); }
- // used by jvmti to track if the unload event has been reported
- bool unload_reported() { return _unload_reported; }
- void set_unload_reported() { _unload_reported = true; }
-
int get_state() const {
return _state;
}
void make_unloaded();
@@ -619,22 +615,27 @@
private:
ScopeDesc* scope_desc_in(address begin, address end);
address* orig_pc_addr(const frame* fr);
+ // used by jvmti to track if the load and unload events has been reported
+ bool unload_reported() const { return _unload_reported; }
+ void set_unload_reported() { _unload_reported = true; }
+ bool load_reported() const { return _load_reported; }
+ void set_load_reported() { _load_reported = true; }
+
public:
// copying of debugging information
void copy_scopes_pcs(PcDesc* pcs, int count);
void copy_scopes_data(address buffer, int size);
// Accessor/mutator for the original pc of a frame before a frame was deopted.
address get_original_pc(const frame* fr) { return *orig_pc_addr(fr); }
void set_original_pc(const frame* fr, address pc) { *orig_pc_addr(fr) = pc; }
// jvmti support:
- void post_compiled_method_load_event();
- jmethodID get_and_cache_jmethod_id();
+ void post_compiled_method_load_event(JavaThread* thread = NULL);
// verify operations
void verify();
void verify_scopes();
void verify_interrupt_point(address interrupt_point);
< prev index next >