Mercurial > hg > graal-jvmci-8
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(); |