private void traceTypeInfo(StringBuffer buf, Map labelNames, List infos) { String sep = ""; for (int i = 0; i < infos.size(); i++) { StackMapType t = (StackMapType) infos.get(i); buf.append(sep).append(StackMapType.ITEM_NAMES[t.getType()]); sep = ", "; if (t.getType() == StackMapType.ITEM_Object) { buf.append(":").append(t.getObject()); } if (t.getType() == StackMapType.ITEM_Uninitialized) { buf.append(":"); appendLabel(buf, labelNames, t.getLabel()); } } }
void asmifyTypeInfo( StringBuffer buf, String varName, Map labelNames, List infos, String field) { if (infos.size() == 0) { buf.append("List ") .append(field) .append(" = Collections.EMPTY_LIST;\n"); } else { buf.append("List ").append(field).append(" = new ArrayList();\n"); buf.append("{\n"); for (int i = 0; i < infos.size(); i++) { StackMapType typeInfo = (StackMapType) infos.get(i); String localName = varName + "Info" + i; int type = typeInfo.getType(); buf.append("StackMapType ") .append(localName) .append(" = StackMapType.getTypeInfo( StackMapType.ITEM_") .append(StackMapType.ITEM_NAMES[type]) .append(");\n"); switch (type) { case StackMapType.ITEM_Object: // buf.append(localName) .append(".setObject(\"") .append(typeInfo.getObject()) .append("\");\n"); break; case StackMapType.ITEM_Uninitialized: // declareLabel(buf, labelNames, typeInfo.getLabel()); buf.append(localName) .append(".setLabel(") .append(labelNames.get(typeInfo.getLabel())) .append(");\n"); break; } buf.append(field) .append(".add(") .append(localName) .append(");\n"); } buf.append("}\n"); } }
void asmifyTypeInfo( StringBuffer buf, String varName, Map labelNames, List infos, String field) { if (infos.size() > 0) { buf.append("{\n"); for (int i = 0; i < infos.size(); i++) { StackMapType typeInfo = (StackMapType) infos.get(i); String localName = varName + "Info" + i; int type = typeInfo.getType(); buf.append("StackMapType ") .append(localName) .append(" = StackMapType.getTypeInfo( StackMapType.ITEM_") .append(StackMapType.ITEM_NAMES[type]) .append(");\n"); switch (type) { case StackMapType.ITEM_Object: // buf.append(localName) .append(".setObject(\"") .append(typeInfo.getObject()) .append("\");\n"); break; case StackMapType.ITEM_Uninitialized: // declareLabel(buf, labelNames, typeInfo.getLabel()); buf.append(localName) .append(".setLabel(") .append(labelNames.get(typeInfo.getLabel())) .append(");\n"); break; } buf.append(varName) .append(".") .append(field) .append(".add(") .append(localName) .append(");\n"); } buf.append("}\n"); } }