diff -r d3e404cc3972 -r a38132298eda src/hotspot/share/jvmci/jvmciCodeInstaller.cpp --- a/src/hotspot/share/jvmci/jvmciCodeInstaller.cpp Mon Jun 03 21:28:45 2019 +0200 +++ b/src/hotspot/share/jvmci/jvmciCodeInstaller.cpp Mon Jun 03 13:21:02 2019 -0700 @@ -988,9 +988,11 @@ JVMCIObject value = JVMCIENV->get_object_at(virtualObjects, i); int id = jvmci_env()->get_VirtualObject_id(value); JVMCIObject type = jvmci_env()->get_VirtualObject_type(value); + bool is_auto_box = jvmci_env()->get_VirtualObject_isAutoBox(value); Klass* klass = jvmci_env()->asKlass(type); oop javaMirror = klass->java_mirror(); - ObjectValue* sv = new ObjectValue(id, new ConstantOopWriteValue(JNIHandles::make_local(Thread::current(), javaMirror))); + ScopeValue *klass_sv = new ConstantOopWriteValue(JNIHandles::make_local(Thread::current(), javaMirror)); + ObjectValue* sv = is_auto_box ? new AutoBoxObjectValue(id, klass_sv) : new ObjectValue(id, klass_sv); if (id < 0 || id >= objects->length()) { JVMCI_ERROR_NULL("virtual object id %d out of bounds", id); }