comparison src/share/vm/graal/graalCodeInstaller.cpp @ 3707:0ac36a6d5ab0

fix for escape analyzed arrays in debug mode
author Lukas Stadler <lukas.stadler@jku.at>
date Fri, 02 Dec 2011 16:59:53 +0100
parents 342a54994e05
children 4e037604f6ee
comparison
equal deleted inserted replaced
3706:a59727158259 3707:0ac36a6d5ab0
184 } 184 }
185 tty->print("%i", type); 185 tty->print("%i", type);
186 } else if (value->is_a(CiVirtualObject::klass())) { 186 } else if (value->is_a(CiVirtualObject::klass())) {
187 oop type = CiVirtualObject::type(value); 187 oop type = CiVirtualObject::type(value);
188 int id = CiVirtualObject::id(value); 188 int id = CiVirtualObject::id(value);
189 instanceKlass* klass = instanceKlass::cast(java_lang_Class::as_klassOop(HotSpotTypeResolved::javaMirror(type))); 189 klassOop klass = java_lang_Class::as_klassOop(HotSpotTypeResolved::javaMirror(type));
190 190
191 for (jint i = 0; i < objects->length(); i++) { 191 for (jint i = 0; i < objects->length(); i++) {
192 ObjectValue* obj = (ObjectValue*) objects->at(i); 192 ObjectValue* obj = (ObjectValue*) objects->at(i);
193 if (obj->id() == id) { 193 if (obj->id() == id) {
194 return obj; 194 return obj;
195 } 195 }
196 } 196 }
197 197
198 ObjectValue* sv = new ObjectValue(id, new ConstantOopWriteValue(JNIHandles::make_local(Thread::current(), klass->as_klassOop()))); 198 ObjectValue* sv = new ObjectValue(id, new ConstantOopWriteValue(JNIHandles::make_local(Thread::current(), klass)));
199 199
200 arrayOop values = (arrayOop) CiVirtualObject::values(value); 200 arrayOop values = (arrayOop) CiVirtualObject::values(value);
201 for (jint i = 0; i < values->length(); i++) { 201 for (jint i = 0; i < values->length(); i++) {
202 ((oop*) values->base(T_OBJECT))[i]; 202 ((oop*) values->base(T_OBJECT))[i];
203 } 203 }