src/share/vm/prims/jvmtiCodeBlobEvents.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
6656830 Cdiff src/share/vm/prims/jvmtiCodeBlobEvents.cpp
src/share/vm/prims/jvmtiCodeBlobEvents.cpp
Print this page
*** 215,239 ****
// Support class to describe a nmethod in the CodeCache
class nmethodDesc: public CHeapObj {
private:
! methodHandle _method;
address _code_begin;
address _code_end;
jvmtiAddrLocationMap* _map;
jint _map_length;
public:
! nmethodDesc(methodHandle method, address code_begin, address code_end,
jvmtiAddrLocationMap* map, jint map_length) {
! _method = method;
_code_begin = code_begin;
_code_end = code_end;
_map = map;
_map_length = map_length;
}
! methodHandle method() const { return _method; }
address code_begin() const { return _code_begin; }
address code_end() const { return _code_end; }
jvmtiAddrLocationMap* map() const { return _map; }
jint map_length() const { return _map_length; }
};
--- 215,239 ----
// Support class to describe a nmethod in the CodeCache
class nmethodDesc: public CHeapObj {
private:
! jmethodID _jmethod_id;
address _code_begin;
address _code_end;
jvmtiAddrLocationMap* _map;
jint _map_length;
public:
! nmethodDesc(jmethodID jmethod_id, address code_begin, address code_end,
jvmtiAddrLocationMap* map, jint map_length) {
! _jmethod_id = jmethod_id;
_code_begin = code_begin;
_code_end = code_end;
_map = map;
_map_length = map_length;
}
! jmethodID jmethod_id() const { return _jmethod_id; }
address code_begin() const { return _code_begin; }
address code_end() const { return _code_end; }
jvmtiAddrLocationMap* map() const { return _map; }
jint map_length() const { return _map_length; }
};
*** 321,332 ****
jvmtiAddrLocationMap* map;
jint map_length;
JvmtiCodeBlobEvents::build_jvmti_addr_location_map(nm, &map, &map_length);
// record the nmethod details
! methodHandle mh(nm->method());
! nmethodDesc* snm = new nmethodDesc(mh,
nm->code_begin(),
nm->code_end(),
map,
map_length);
_global_nmethods->append(snm);
--- 321,331 ----
jvmtiAddrLocationMap* map;
jint map_length;
JvmtiCodeBlobEvents::build_jvmti_addr_location_map(nm, &map, &map_length);
// record the nmethod details
! nmethodDesc* snm = new nmethodDesc(nm->get_and_cache_jmethod_id(),
nm->code_begin(),
nm->code_end(),
map,
map_length);
_global_nmethods->append(snm);
*** 365,376 ****
}
// iterate over the list and post an event for each nmethod
nmethodDesc* nm_desc = collector.first();
while (nm_desc != NULL) {
! methodOop method = nm_desc->method()();
! jmethodID mid = method->jmethod_id();
assert(mid != NULL, "checking");
JvmtiExport::post_compiled_method_load(env, mid,
(jint)(nm_desc->code_end() - nm_desc->code_begin()),
nm_desc->code_begin(), nm_desc->map_length(),
nm_desc->map());
--- 364,374 ----
}
// iterate over the list and post an event for each nmethod
nmethodDesc* nm_desc = collector.first();
while (nm_desc != NULL) {
! jmethodID mid = nm_desc->jmethod_id();
assert(mid != NULL, "checking");
JvmtiExport::post_compiled_method_load(env, mid,
(jint)(nm_desc->code_end() - nm_desc->code_begin()),
nm_desc->code_begin(), nm_desc->map_length(),
nm_desc->map());
src/share/vm/prims/jvmtiCodeBlobEvents.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File