< prev index next >

src/hotspot/share/runtime/frame.cpp

Print this page
rev 47445 : 8171853: Remove Shark compiler


1105   }
1106   // Traverse the Handle Block saved in the entry frame
1107   entry_frame_call_wrapper()->oops_do(f);
1108 }
1109 
1110 
1111 void frame::oops_do_internal(OopClosure* f, CodeBlobClosure* cf, RegisterMap* map, bool use_interpreter_oop_map_cache) {
1112 #ifndef PRODUCT
1113   // simulate GC crash here to dump java thread in error report
1114   if (CrashGCForDumpingJavaThread) {
1115     char *t = NULL;
1116     *t = 'c';
1117   }
1118 #endif
1119   if (is_interpreted_frame()) {
1120     oops_interpreted_do(f, map, use_interpreter_oop_map_cache);
1121   } else if (is_entry_frame()) {
1122     oops_entry_do(f, map);
1123   } else if (CodeCache::contains(pc())) {
1124     oops_code_blob_do(f, cf, map);
1125 #ifdef SHARK
1126   } else if (is_fake_stub_frame()) {
1127     // nothing to do
1128 #endif // SHARK
1129   } else {
1130     ShouldNotReachHere();
1131   }
1132 }
1133 
1134 void frame::nmethods_do(CodeBlobClosure* cf) {
1135   if (_cb != NULL && _cb->is_nmethod()) {
1136     cf->do_code_blob(_cb);
1137   }
1138 }
1139 
1140 
1141 // call f() on the interpreted Method*s in the stack.
1142 // Have to walk the entire code cache for the compiled frames Yuck.
1143 void frame::metadata_do(void f(Metadata*)) {
1144   if (is_interpreted_frame()) {
1145     Method* m = this->interpreter_frame_method();
1146     assert(m != NULL, "expecting a method in this frame");
1147     f(m);
1148   }




1105   }
1106   // Traverse the Handle Block saved in the entry frame
1107   entry_frame_call_wrapper()->oops_do(f);
1108 }
1109 
1110 
1111 void frame::oops_do_internal(OopClosure* f, CodeBlobClosure* cf, RegisterMap* map, bool use_interpreter_oop_map_cache) {
1112 #ifndef PRODUCT
1113   // simulate GC crash here to dump java thread in error report
1114   if (CrashGCForDumpingJavaThread) {
1115     char *t = NULL;
1116     *t = 'c';
1117   }
1118 #endif
1119   if (is_interpreted_frame()) {
1120     oops_interpreted_do(f, map, use_interpreter_oop_map_cache);
1121   } else if (is_entry_frame()) {
1122     oops_entry_do(f, map);
1123   } else if (CodeCache::contains(pc())) {
1124     oops_code_blob_do(f, cf, map);




1125   } else {
1126     ShouldNotReachHere();
1127   }
1128 }
1129 
1130 void frame::nmethods_do(CodeBlobClosure* cf) {
1131   if (_cb != NULL && _cb->is_nmethod()) {
1132     cf->do_code_blob(_cb);
1133   }
1134 }
1135 
1136 
1137 // call f() on the interpreted Method*s in the stack.
1138 // Have to walk the entire code cache for the compiled frames Yuck.
1139 void frame::metadata_do(void f(Metadata*)) {
1140   if (is_interpreted_frame()) {
1141     Method* m = this->interpreter_frame_method();
1142     assert(m != NULL, "expecting a method in this frame");
1143     f(m);
1144   }


< prev index next >