src/share/vm/prims/jvmtiImpl.cpp
Print this page
*** 289,316 ****
instanceKlassHandle ikh = instanceKlassHandle(thread, _method->method_holder());
Symbol* m_name = _method->name();
Symbol* m_signature = _method->signature();
// search previous versions if they exist
! PreviousVersionWalker pvw(thread, (InstanceKlass *)ikh());
! for (PreviousVersionNode * pv_node = pvw.next_previous_version();
! pv_node != NULL; pv_node = pvw.next_previous_version()) {
! GrowableArray<Method*>* methods = pv_node->prev_EMCP_methods();
!
! if (methods == NULL) {
! // We have run into a PreviousVersion generation where
! // all methods were made obsolete during that generation's
! // RedefineClasses() operation. At the time of that
! // operation, all EMCP methods were flushed so we don't
! // have to go back any further.
! //
! // A NULL methods array is different than an empty methods
! // array. We cannot infer any optimizations about older
! // generations from an empty methods array for the current
! // generation.
! break;
! }
for (int i = methods->length() - 1; i >= 0; i--) {
Method* method = methods->at(i);
// obsolete methods that are running are not deleted from
// previous version array, but they are skipped here.
--- 289,302 ----
instanceKlassHandle ikh = instanceKlassHandle(thread, _method->method_holder());
Symbol* m_name = _method->name();
Symbol* m_signature = _method->signature();
// search previous versions if they exist
! for (InstanceKlass* pv_node = ikh->previous_versions();
! pv_node != NULL;
! pv_node = pv_node->previous_versions()) {
! Array<Method*>* methods = pv_node->methods();
for (int i = methods->length() - 1; i >= 0; i--) {
Method* method = methods->at(i);
// obsolete methods that are running are not deleted from
// previous version array, but they are skipped here.