< prev index next >

src/hotspot/share/runtime/vframe_hp.cpp

Print this page

456       break;
457     case T_FLOAT:
458       locals->set_float_at(index, value.f);
459       break;
460     case T_DOUBLE:
461       locals->set_double_at(index, value.d);
462       break;
463     case T_BYTE:
464       locals->set_int_at(index, value.b);
465       break;
466     case T_SHORT:
467       locals->set_int_at(index, value.s);
468       break;
469     case T_INT:
470       locals->set_int_at(index, value.i);
471       break;
472     case T_LONG:
473       locals->set_long_at(index, value.j);
474       break;
475     case T_OBJECT:

476       {
477         Handle obj(Thread::current(), cast_to_oop(value.l));
478         locals->set_obj_at(index, obj);
479       }
480       break;
481     default:
482       ShouldNotReachHere();
483   }
484 }
485 
486 void jvmtiDeferredLocalVariableSet::update_locals(StackValueCollection* locals) {
487   for (int l = 0; l < _locals->length(); l ++) {
488     jvmtiDeferredLocalVariable* val = _locals->at(l);
489     if (val->index() >= 0 && val->index() < method()->max_locals()) {
490       update_value(locals, val->type(), val->index(), val->value());
491     }
492   }
493 }
494 
495 

456       break;
457     case T_FLOAT:
458       locals->set_float_at(index, value.f);
459       break;
460     case T_DOUBLE:
461       locals->set_double_at(index, value.d);
462       break;
463     case T_BYTE:
464       locals->set_int_at(index, value.b);
465       break;
466     case T_SHORT:
467       locals->set_int_at(index, value.s);
468       break;
469     case T_INT:
470       locals->set_int_at(index, value.i);
471       break;
472     case T_LONG:
473       locals->set_long_at(index, value.j);
474       break;
475     case T_OBJECT:
476     case T_PRIMITIVE_OBJECT:
477       {
478         Handle obj(Thread::current(), cast_to_oop(value.l));
479         locals->set_obj_at(index, obj);
480       }
481       break;
482     default:
483       ShouldNotReachHere();
484   }
485 }
486 
487 void jvmtiDeferredLocalVariableSet::update_locals(StackValueCollection* locals) {
488   for (int l = 0; l < _locals->length(); l ++) {
489     jvmtiDeferredLocalVariable* val = _locals->at(l);
490     if (val->index() >= 0 && val->index() < method()->max_locals()) {
491       update_value(locals, val->type(), val->index(), val->value());
492     }
493   }
494 }
495 
496 
< prev index next >