comparison src/share/vm/jvmci/jvmciCompilerToVM.cpp @ 22599:a7114a5e69e1

Don't expect internal fields when rematerializing object for C2 methods
author Tom Rodriguez <tom.rodriguez@oracle.com>
date Tue, 22 Sep 2015 08:51:10 -0700
parents 99b7154e88c7
children f0ec628cb987
comparison
equal deleted inserted replaced
22598:ed53e370f04c 22599:a7114a5e69e1
925 } else { 925 } else {
926 GrowableArray<ScopeValue*>* objects = cvf->scope()->objects(); 926 GrowableArray<ScopeValue*>* objects = cvf->scope()->objects();
927 bool reallocated = false; 927 bool reallocated = false;
928 if (objects != NULL) { 928 if (objects != NULL) {
929 reallocated = Deoptimization::realloc_objects(thread, fst.current(), objects, THREAD); 929 reallocated = Deoptimization::realloc_objects(thread, fst.current(), objects, THREAD);
930 Deoptimization::reassign_fields(fst.current(), fst.register_map(), objects, reallocated); 930 Deoptimization::reassign_fields(fst.current(), fst.register_map(), objects, reallocated, false);
931 931
932 GrowableArray<ScopeValue*>* local_values = cvf->scope()->locals(); 932 GrowableArray<ScopeValue*>* local_values = cvf->scope()->locals();
933 typeArrayHandle array = oopFactory::new_boolArray(local_values->length(), thread); 933 typeArrayHandle array = oopFactory::new_boolArray(local_values->length(), thread);
934 for (int i = 0; i < local_values->length(); i++) { 934 for (int i = 0; i < local_values->length(); i++) {
935 ScopeValue* value = local_values->at(i); 935 ScopeValue* value = local_values->at(i);
1080 // no objects to materialize 1080 // no objects to materialize
1081 return; 1081 return;
1082 } 1082 }
1083 1083
1084 bool reallocated = Deoptimization::realloc_objects(thread, fst.current(), objects, THREAD); 1084 bool reallocated = Deoptimization::realloc_objects(thread, fst.current(), objects, THREAD);
1085 Deoptimization::reassign_fields(fst.current(), fst.register_map(), objects, reallocated); 1085 Deoptimization::reassign_fields(fst.current(), fst.register_map(), objects, reallocated, false);
1086 1086
1087 for (int frame_index = 0; frame_index < virtualFrames->length(); frame_index++) { 1087 for (int frame_index = 0; frame_index < virtualFrames->length(); frame_index++) {
1088 compiledVFrame* cvf = virtualFrames->at(frame_index); 1088 compiledVFrame* cvf = virtualFrames->at(frame_index);
1089 1089
1090 GrowableArray<ScopeValue*>* scopeLocals = cvf->scope()->locals(); 1090 GrowableArray<ScopeValue*>* scopeLocals = cvf->scope()->locals();