# HG changeset patch # User Thomas Wuerthinger # Date 1301943765 -7200 # Node ID 0309d394eb5fe39f9b8a42aecda342cba7fad7fb # Parent 0579225e067012f9c4a3e576b05a5079637c0acd Added support for non-null oop values in scope objects (allocating global handle). diff -r 0579225e0670 -r 0309d394eb5f src/share/vm/c1x/c1x_CodeInstaller.cpp --- a/src/share/vm/c1x/c1x_CodeInstaller.cpp Mon Apr 04 20:00:55 2011 +0200 +++ b/src/share/vm/c1x/c1x_CodeInstaller.cpp Mon Apr 04 21:02:45 2011 +0200 @@ -142,7 +142,7 @@ if (obj == NULL) { return new ConstantOopWriteValue(NULL); } else { - obj->print(); + return new ConstantOopWriteValue(JNIHandles::make_global(obj)); } } else if (type == T_ADDRESS) { return new ConstantLongValue(prim); diff -r 0579225e0670 -r 0309d394eb5f src/share/vm/c1x/c1x_JavaAccess.cpp --- a/src/share/vm/c1x/c1x_JavaAccess.cpp Mon Apr 04 20:00:55 2011 +0200 +++ b/src/share/vm/c1x/c1x_JavaAccess.cpp Mon Apr 04 21:02:45 2011 +0200 @@ -52,7 +52,7 @@ // This piece of macro magic creates the contents of the c1x_compute_offsets method that initializes the field indices of all the access classes. -#define START_CLASS(name) { klassOop k = SystemDictionary::name##_klass(); +#define START_CLASS(name) { klassOop k = SystemDictionary::name##_klass(); assert(k != NULL, "Could not find class " #name ""); #define END_CLASS } diff -r 0579225e0670 -r 0309d394eb5f src/share/vm/c1x/c1x_JavaAccess.hpp --- a/src/share/vm/c1x/c1x_JavaAccess.hpp Mon Apr 04 20:00:55 2011 +0200 +++ b/src/share/vm/c1x/c1x_JavaAccess.hpp Mon Apr 04 21:02:45 2011 +0200 @@ -138,11 +138,11 @@ long_field(CiBitMap, low) \ oop_field(CiBitMap, extra, "[J") \ end_class \ - start_class(CiFrame) \ - oop_field(CiFrame, values, "[Lcom/sun/cri/ci/CiValue;") \ - int_field(CiFrame, numLocals) \ - int_field(CiFrame, numStack) \ - int_field(CiFrame, numLocks) \ + start_class(CiFrame) \ + oop_field(CiFrame, values, "[Lcom/sun/cri/ci/CiValue;") \ + int_field(CiFrame, numLocals) \ + int_field(CiFrame, numStack) \ + int_field(CiFrame, numLocks) \ end_class \ start_class(CiCodePos) \ oop_field(CiCodePos, caller, "Lcom/sun/cri/ci/CiCodePos;") \