mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 14:54:52 +02:00
8192004: InspectedFrame.materializeVirtualObjects only updates locals with new objects
Reviewed-by: kvn, sspitsyn, phh
This commit is contained in:
parent
745d8e3815
commit
d586b03911
3 changed files with 184 additions and 87 deletions
|
@ -1652,7 +1652,6 @@ C2V_VMENTRY(void, materializeVirtualObjects, (JNIEnv*, jobject, jobject hs_frame
|
|||
|
||||
GrowableArray<ScopeValue*>* scopeLocals = cvf->scope()->locals();
|
||||
StackValueCollection* locals = cvf->locals();
|
||||
|
||||
if (locals != NULL) {
|
||||
for (int i2 = 0; i2 < locals->size(); i2++) {
|
||||
StackValue* var = locals->at(i2);
|
||||
|
@ -1663,6 +1662,27 @@ C2V_VMENTRY(void, materializeVirtualObjects, (JNIEnv*, jobject, jobject hs_frame
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
GrowableArray<ScopeValue*>* scopeExpressions = cvf->scope()->expressions();
|
||||
StackValueCollection* expressions = cvf->expressions();
|
||||
if (expressions != NULL) {
|
||||
for (int i2 = 0; i2 < expressions->size(); i2++) {
|
||||
StackValue* var = expressions->at(i2);
|
||||
if (var->type() == T_OBJECT && scopeExpressions->at(i2)->is_object()) {
|
||||
jvalue val;
|
||||
val.l = (jobject) expressions->at(i2)->get_obj()();
|
||||
cvf->update_stack(T_OBJECT, i2, val);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GrowableArray<MonitorValue*>* scopeMonitors = cvf->scope()->monitors();
|
||||
GrowableArray<MonitorInfo*>* monitors = cvf->monitors();
|
||||
if (monitors != NULL) {
|
||||
for (int i2 = 0; i2 < monitors->length(); i2++) {
|
||||
cvf->update_monitor(i2, monitors->at(i2));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// all locals are materialized by now
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue