1131 // Have to walk the entire code cache for the compiled frames Yuck.
1132 void frame::metadata_do(void f(Metadata*)) {
1133 if (is_interpreted_frame()) {
1134 Method* m = this->interpreter_frame_method();
1135 assert(m != NULL, "expecting a method in this frame");
1136 f(m);
1137 }
1138 }
1139
1140 void frame::verify(const RegisterMap* map) {
1141 // for now make sure receiver type is correct
1142 if (is_interpreted_frame()) {
1143 Method* method = interpreter_frame_method();
1144 guarantee(method->is_method(), "method is wrong in frame::verify");
1145 if (!method->is_static()) {
1146 // fetch the receiver
1147 oop* p = (oop*) interpreter_frame_local_at(0);
1148 // make sure we have the right receiver type
1149 }
1150 }
1151 #if defined(COMPILER2) || INCLUDE_JVMCI
1152 assert(DerivedPointerTable::is_empty(), "must be empty before verify");
1153 #endif
1154 oops_do_internal(&VerifyOopClosure::verify_oop, NULL, (RegisterMap*)map, false);
1155 }
1156
1157
1158 #ifdef ASSERT
1159 bool frame::verify_return_pc(address x) {
1160 if (StubRoutines::returns_to_call_stub(x)) {
1161 return true;
1162 }
1163 if (CodeCache::contains(x)) {
1164 return true;
1165 }
1166 if (Interpreter::contains(x)) {
1167 return true;
1168 }
1169 return false;
1170 }
1171 #endif
|
1131 // Have to walk the entire code cache for the compiled frames Yuck.
1132 void frame::metadata_do(void f(Metadata*)) {
1133 if (is_interpreted_frame()) {
1134 Method* m = this->interpreter_frame_method();
1135 assert(m != NULL, "expecting a method in this frame");
1136 f(m);
1137 }
1138 }
1139
1140 void frame::verify(const RegisterMap* map) {
1141 // for now make sure receiver type is correct
1142 if (is_interpreted_frame()) {
1143 Method* method = interpreter_frame_method();
1144 guarantee(method->is_method(), "method is wrong in frame::verify");
1145 if (!method->is_static()) {
1146 // fetch the receiver
1147 oop* p = (oop*) interpreter_frame_local_at(0);
1148 // make sure we have the right receiver type
1149 }
1150 }
1151 #if COMPILER2_OR_JVMCI
1152 assert(DerivedPointerTable::is_empty(), "must be empty before verify");
1153 #endif
1154 oops_do_internal(&VerifyOopClosure::verify_oop, NULL, (RegisterMap*)map, false);
1155 }
1156
1157
1158 #ifdef ASSERT
1159 bool frame::verify_return_pc(address x) {
1160 if (StubRoutines::returns_to_call_stub(x)) {
1161 return true;
1162 }
1163 if (CodeCache::contains(x)) {
1164 return true;
1165 }
1166 if (Interpreter::contains(x)) {
1167 return true;
1168 }
1169 return false;
1170 }
1171 #endif
|