< prev index next >

src/hotspot/share/runtime/vframe_hp.cpp

Print this page

440       break;
441     case T_FLOAT:
442       locals->set_float_at(index, value.f);
443       break;
444     case T_DOUBLE:
445       locals->set_double_at(index, value.d);
446       break;
447     case T_BYTE:
448       locals->set_int_at(index, value.b);
449       break;
450     case T_SHORT:
451       locals->set_int_at(index, value.s);
452       break;
453     case T_INT:
454       locals->set_int_at(index, value.i);
455       break;
456     case T_LONG:
457       locals->set_long_at(index, value.j);
458       break;
459     case T_OBJECT:

460       {
461         Handle obj(Thread::current(), cast_to_oop(value.l));
462         locals->set_obj_at(index, obj);
463       }
464       break;
465     default:
466       ShouldNotReachHere();
467   }
468 }
469 
470 void jvmtiDeferredLocalVariableSet::update_locals(StackValueCollection* locals) {
471   for (int l = 0; l < _locals->length(); l ++) {
472     jvmtiDeferredLocalVariable* val = _locals->at(l);
473     if (val->index() >= 0 && val->index() < method()->max_locals()) {
474       update_value(locals, val->type(), val->index(), val->value());
475     }
476   }
477 }
478 
479 

440       break;
441     case T_FLOAT:
442       locals->set_float_at(index, value.f);
443       break;
444     case T_DOUBLE:
445       locals->set_double_at(index, value.d);
446       break;
447     case T_BYTE:
448       locals->set_int_at(index, value.b);
449       break;
450     case T_SHORT:
451       locals->set_int_at(index, value.s);
452       break;
453     case T_INT:
454       locals->set_int_at(index, value.i);
455       break;
456     case T_LONG:
457       locals->set_long_at(index, value.j);
458       break;
459     case T_OBJECT:
460     case T_INLINE_TYPE:
461       {
462         Handle obj(Thread::current(), cast_to_oop(value.l));
463         locals->set_obj_at(index, obj);
464       }
465       break;
466     default:
467       ShouldNotReachHere();
468   }
469 }
470 
471 void jvmtiDeferredLocalVariableSet::update_locals(StackValueCollection* locals) {
472   for (int l = 0; l < _locals->length(); l ++) {
473     jvmtiDeferredLocalVariable* val = _locals->at(l);
474     if (val->index() >= 0 && val->index() < method()->max_locals()) {
475       update_value(locals, val->type(), val->index(), val->value());
476     }
477   }
478 }
479 
480 
< prev index next >