src/hotspot/share/jvmci/jvmciCodeInstaller.cpp
changeset 55159 a38132298eda
parent 54786 ebf733a324d4
child 55293 d19dc5b10fbb
--- 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);
     }