Index: vm/vmcore/src/jvmti/jvmti_locals.cpp =================================================================== --- vm/vmcore/src/jvmti/jvmti_locals.cpp (revision 587890) +++ vm/vmcore/src/jvmti/jvmti_locals.cpp (working copy) @@ -193,12 +193,12 @@ tmn_suspend_disable(); OpenExeJpdaError result = jit->get_local_var(method, jfc, slot, - VM_DATA_TYPE_MP, &obj); + VM_DATA_TYPE_CLASS, &obj); si_free(si); if (result == EXE_ERROR_NONE) { - if (NULL != obj) + if (obj != VM_Global_State::loader_env->managed_null) { ObjectHandle oh = oh_allocate_local_handle(); oh->object = obj; @@ -459,12 +459,12 @@ OpenExeJpdaError result; if (NULL != value) result = jit->set_local_var(method, jfc, slot, - VM_DATA_TYPE_MP, &value->object); + VM_DATA_TYPE_CLASS, &value->object); else { - ManagedObject *n = NULL; + ManagedObject *n = VM_Global_State::loader_env->managed_null; result = jit->set_local_var(method, jfc, slot, - VM_DATA_TYPE_MP, &n); + VM_DATA_TYPE_CLASS, &n); } si_free(si); Index: vm/jitrino/src/jet/rt.cpp =================================================================== --- vm/jitrino/src/jet/rt.cpp (revision 587890) +++ vm/jitrino/src/jet/rt.cpp (working copy) @@ -546,6 +546,12 @@ if (!tst(map, var_num)) { return EXE_ERROR_TYPE_MISMATCH; } +#ifdef _EM64T_ + case VM_DATA_TYPE_STRING: + var_ptr_to_64 = (uint64*)value_ptr; + *var_ptr_to_64 = *(uint64*)(ebp + frame.local(var_num)); + break; +#endif default: var_ptr_to32 = (uint32*)value_ptr; *var_ptr_to32 = *(uint32*)(ebp + frame.local(var_num));