equal
deleted
inserted
replaced
189 // been generated while the compilers perform it before. To maintain |
189 // been generated while the compilers perform it before. To maintain |
190 // semantic consistency between interpreted and compiled frames, the |
190 // semantic consistency between interpreted and compiled frames, the |
191 // method returns the Java sender of the current frame. |
191 // method returns the Java sender of the current frame. |
192 *fr = os::fetch_frame_from_ucontext(thread, uc); |
192 *fr = os::fetch_frame_from_ucontext(thread, uc); |
193 if (!fr->is_first_java_frame()) { |
193 if (!fr->is_first_java_frame()) { |
194 assert(fr->safe_for_sender(thread), "Safety check"); |
194 // get_frame_at_stack_banging_point() is only called when we |
|
195 // have well defined stacks so java_sender() calls do not need |
|
196 // to assert safe_for_sender() first. |
195 *fr = fr->java_sender(); |
197 *fr = fr->java_sender(); |
196 } |
198 } |
197 } else { |
199 } else { |
198 // more complex code with compiled code |
200 // more complex code with compiled code |
199 assert(!Interpreter::contains(pc), "Interpreted methods should have been handled above"); |
201 assert(!Interpreter::contains(pc), "Interpreted methods should have been handled above"); |
207 // has been pushed on the stack |
209 // has been pushed on the stack |
208 intptr_t* fp = os::Linux::ucontext_get_fp(uc); |
210 intptr_t* fp = os::Linux::ucontext_get_fp(uc); |
209 intptr_t* sp = os::Linux::ucontext_get_sp(uc); |
211 intptr_t* sp = os::Linux::ucontext_get_sp(uc); |
210 *fr = frame(sp + 1, fp, (address)*sp); |
212 *fr = frame(sp + 1, fp, (address)*sp); |
211 if (!fr->is_java_frame()) { |
213 if (!fr->is_java_frame()) { |
212 assert(fr->safe_for_sender(thread), "Safety check"); |
|
213 assert(!fr->is_first_frame(), "Safety check"); |
214 assert(!fr->is_first_frame(), "Safety check"); |
|
215 // See java_sender() comment above. |
214 *fr = fr->java_sender(); |
216 *fr = fr->java_sender(); |
215 } |
217 } |
216 } |
218 } |
217 } |
219 } |
218 assert(fr->is_java_frame(), "Safety check"); |
220 assert(fr->is_java_frame(), "Safety check"); |