1650 for (int frame_index = 0; frame_index < virtualFrames->length(); frame_index++) { |
1650 for (int frame_index = 0; frame_index < virtualFrames->length(); frame_index++) { |
1651 compiledVFrame* cvf = virtualFrames->at(frame_index); |
1651 compiledVFrame* cvf = virtualFrames->at(frame_index); |
1652 |
1652 |
1653 GrowableArray<ScopeValue*>* scopeLocals = cvf->scope()->locals(); |
1653 GrowableArray<ScopeValue*>* scopeLocals = cvf->scope()->locals(); |
1654 StackValueCollection* locals = cvf->locals(); |
1654 StackValueCollection* locals = cvf->locals(); |
1655 |
|
1656 if (locals != NULL) { |
1655 if (locals != NULL) { |
1657 for (int i2 = 0; i2 < locals->size(); i2++) { |
1656 for (int i2 = 0; i2 < locals->size(); i2++) { |
1658 StackValue* var = locals->at(i2); |
1657 StackValue* var = locals->at(i2); |
1659 if (var->type() == T_OBJECT && scopeLocals->at(i2)->is_object()) { |
1658 if (var->type() == T_OBJECT && scopeLocals->at(i2)->is_object()) { |
1660 jvalue val; |
1659 jvalue val; |
1661 val.l = (jobject) locals->at(i2)->get_obj()(); |
1660 val.l = (jobject) locals->at(i2)->get_obj()(); |
1662 cvf->update_local(T_OBJECT, i2, val); |
1661 cvf->update_local(T_OBJECT, i2, val); |
1663 } |
1662 } |
|
1663 } |
|
1664 } |
|
1665 |
|
1666 GrowableArray<ScopeValue*>* scopeExpressions = cvf->scope()->expressions(); |
|
1667 StackValueCollection* expressions = cvf->expressions(); |
|
1668 if (expressions != NULL) { |
|
1669 for (int i2 = 0; i2 < expressions->size(); i2++) { |
|
1670 StackValue* var = expressions->at(i2); |
|
1671 if (var->type() == T_OBJECT && scopeExpressions->at(i2)->is_object()) { |
|
1672 jvalue val; |
|
1673 val.l = (jobject) expressions->at(i2)->get_obj()(); |
|
1674 cvf->update_stack(T_OBJECT, i2, val); |
|
1675 } |
|
1676 } |
|
1677 } |
|
1678 |
|
1679 GrowableArray<MonitorValue*>* scopeMonitors = cvf->scope()->monitors(); |
|
1680 GrowableArray<MonitorInfo*>* monitors = cvf->monitors(); |
|
1681 if (monitors != NULL) { |
|
1682 for (int i2 = 0; i2 < monitors->length(); i2++) { |
|
1683 cvf->update_monitor(i2, monitors->at(i2)); |
1664 } |
1684 } |
1665 } |
1685 } |
1666 } |
1686 } |
1667 |
1687 |
1668 // all locals are materialized by now |
1688 // all locals are materialized by now |