Mercurial > hg > graal-compiler
comparison src/share/vm/code/scopeDesc.cpp @ 44:52fed2ec0afb
6667620: (Escape Analysis) fix deoptimization for scalar replaced objects
Summary: Deoptimization code for reallocation and relocking scalar replaced objects has to be fixed.
Reviewed-by: rasbold, never
author | kvn |
---|---|
date | Tue, 11 Mar 2008 11:25:13 -0700 |
parents | a61af66fc99e |
children | d1605aabd0a1 |
comparison
equal
deleted
inserted
replaced
43:d821d920b465 | 44:52fed2ec0afb |
---|---|
89 if (decode_offset == DebugInformationRecorder::serialized_null) return NULL; | 89 if (decode_offset == DebugInformationRecorder::serialized_null) return NULL; |
90 GrowableArray<ScopeValue*>* result = new GrowableArray<ScopeValue*>(); | 90 GrowableArray<ScopeValue*>* result = new GrowableArray<ScopeValue*>(); |
91 DebugInfoReadStream* stream = new DebugInfoReadStream(_code, decode_offset, result); | 91 DebugInfoReadStream* stream = new DebugInfoReadStream(_code, decode_offset, result); |
92 int length = stream->read_int(); | 92 int length = stream->read_int(); |
93 for (int index = 0; index < length; index++) { | 93 for (int index = 0; index < length; index++) { |
94 result->push(ScopeValue::read_from(stream)); | 94 // Objects values are pushed to 'result' array during read so that |
95 // object's fields could reference it (OBJECT_ID_CODE). | |
96 (void)ScopeValue::read_from(stream); | |
95 } | 97 } |
96 assert(result->length() == length, "inconsistent debug information"); | 98 assert(result->length() == length, "inconsistent debug information"); |
97 return result; | 99 return result; |
98 } | 100 } |
99 | 101 |