Conf (Conf conf) { Frame<BasicValue> frame = new Frame<>(conf.frame); for (int i = generalizeShift; i < frame.getLocals(); i++) { BasicValue value = frame.getLocal(i); Class<?> valueClass = value.getClass(); if (valueClass != BasicValue.class && valueClass != ParamValue.class) { frame.setLocal(i, new BasicValue(value.getType())); } } BasicValue[] stack = new BasicValue[frame.getStackSize()]; for (int i = 0; i < frame.getStackSize(); i++) { stack[i] = frame.getStack(i); } frame.clearStack(); for (BasicValue value : stack) { Class<?> valueClass = value.getClass(); if (valueClass != BasicValue.class && valueClass != ParamValue.class) { frame.push(new BasicValue(value.getType())); } else { frame.push(value); } } return new Conf(conf.insnIndex, frame); }