Mercurial > hg > truffle
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 } |