comparison src/share/vm/runtime/deoptimization.cpp @ 3134:4b63eb1197ca

Various fixes around escape analysis.
author Thomas Wuerthinger <thomas@wuerthinger.net>
date Sat, 02 Jul 2011 02:46:04 +0200
parents 536528f48708
children 5ca1332171c8
comparison
equal deleted inserted replaced
3133:5aeb62416609 3134:4b63eb1197ca
887 for (int i = 0; i < objects->length(); i++) { 887 for (int i = 0; i < objects->length(); i++) {
888 ObjectValue* sv = (ObjectValue*) objects->at(i); 888 ObjectValue* sv = (ObjectValue*) objects->at(i);
889 KlassHandle k(((ConstantOopReadValue*) sv->klass())->value()()); 889 KlassHandle k(((ConstantOopReadValue*) sv->klass())->value()());
890 Handle obj = sv->value(); 890 Handle obj = sv->value();
891 assert(obj.not_null(), "reallocation was missed"); 891 assert(obj.not_null(), "reallocation was missed");
892 if (TraceDeoptimization) {
893 tty->print_cr("reassign fields for object of type %s!", k->name()->as_C_string());
894 }
892 895
893 if (k->oop_is_instance()) { 896 if (k->oop_is_instance()) {
894 instanceKlass* ik = instanceKlass::cast(k()); 897 instanceKlass* ik = instanceKlass::cast(k());
895 FieldReassigner reassign(fr, reg_map, sv, obj()); 898 FieldReassigner reassign(fr, reg_map, sv, obj());
896 ik->do_nonstatic_fields(&reassign); 899 ik->do_nonstatic_fields(&reassign);