259 return scope()->method()(); 260 } 261 262 263 int compiledVFrame::bci() const { 264 int raw = raw_bci(); 265 return raw == SynchronizationEntryBCI ? 0 : raw; 266 } 267 268 269 int compiledVFrame::raw_bci() const { 270 if (scope() == NULL) { 271 // native nmethods have no scope the method/bci is implied 272 nmethod* nm = code(); 273 assert(nm->is_native_method(), "must be native"); 274 return 0; 275 } 276 return scope()->bci(); 277 } 278 279 280 vframe* compiledVFrame::sender() const { 281 const frame f = fr(); 282 if (scope() == NULL) { 283 // native nmethods have no scope the method/bci is implied 284 nmethod* nm = code(); 285 assert(nm->is_native_method(), "must be native"); 286 return vframe::sender(); 287 } else { 288 return scope()->is_top() 289 ? vframe::sender() 290 : new compiledVFrame(&f, register_map(), thread(), scope()->sender()); 291 } 292 } 293 294 jvmtiDeferredLocalVariableSet::jvmtiDeferredLocalVariableSet(methodOop method, int bci, intptr_t* id) { 295 _method = method; 296 _bci = bci; 297 _id = id; 298 // Alway will need at least one, must be on C heap | 259 return scope()->method()(); 260 } 261 262 263 int compiledVFrame::bci() const { 264 int raw = raw_bci(); 265 return raw == SynchronizationEntryBCI ? 0 : raw; 266 } 267 268 269 int compiledVFrame::raw_bci() const { 270 if (scope() == NULL) { 271 // native nmethods have no scope the method/bci is implied 272 nmethod* nm = code(); 273 assert(nm->is_native_method(), "must be native"); 274 return 0; 275 } 276 return scope()->bci(); 277 } 278 279 bool compiledVFrame::should_reexecute() const { 280 if (scope() == NULL) { 281 // native nmethods have no scope the method/bci is implied 282 nmethod* nm = code(); 283 assert(nm->is_native_method(), "must be native"); 284 return false; 285 } 286 return scope()->should_reexecute(); 287 } 288 289 vframe* compiledVFrame::sender() const { 290 const frame f = fr(); 291 if (scope() == NULL) { 292 // native nmethods have no scope the method/bci is implied 293 nmethod* nm = code(); 294 assert(nm->is_native_method(), "must be native"); 295 return vframe::sender(); 296 } else { 297 return scope()->is_top() 298 ? vframe::sender() 299 : new compiledVFrame(&f, register_map(), thread(), scope()->sender()); 300 } 301 } 302 303 jvmtiDeferredLocalVariableSet::jvmtiDeferredLocalVariableSet(methodOop method, int bci, intptr_t* id) { 304 _method = method; 305 _bci = bci; 306 _id = id; 307 // Alway will need at least one, must be on C heap |