src/hotspot/share/jvmci/jvmciCompilerToVM.cpp
changeset 48607 7fc3d62481ba
parent 48605 00d8c8d696e9
child 48608 1dab70e20292
equal deleted inserted replaced
48606:be259687afab 48607:7fc3d62481ba
  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