public void add(byte theOpCode, String className, String fieldName, String fieldType) {
public void add(byte theOpCode) {
    public void add(byte theOpCode, String className, String fieldName,                     String fieldType)    {        if (DEBUGCODE)            System.out.println("Add " + Integer.toHexString(theOpCode & 0xFF)                                    + ", " + className + ", " + fieldName + ", " + fieldType);        itsStackTop += ByteCode.stackChange[theOpCode & 0xFF];        if (DEBUG) {            if (itsStackTop < 0)                throw new RuntimeException("After " + Integer.toHexString(theOpCode & 0xFF) + " Stack underflow");        }        char fieldTypeChar = fieldType.charAt(0);        int fieldSize = ((fieldTypeChar == 'J')                                || (fieldTypeChar == 'D')) ? 2 : 1;        switch (theOpCode) {            case ByteCode.GETFIELD :            case ByteCode.GETSTATIC :                itsStackTop += fieldSize;                break;            case ByteCode.PUTSTATIC :            case ByteCode.PUTFIELD :                itsStackTop -= fieldSize;                break;            default :                throw new RuntimeException("bad opcode for field reference");        }        short fieldRefIndex = itsConstantPool.addFieldRef(className,                                             fieldName, fieldType);        addToCodeBuffer(theOpCode);        addToCodeBuffer((byte)(fieldRefIndex >> 8));        addToCodeBuffer((byte)fieldRefIndex);        if (itsStackTop > itsMaxStack) itsMaxStack = itsStackTop;        if (DEBUGSTACK) {            System.out.println("After " + Integer.toHexString(theOpCode & 0xFF) + " stack = " + itsStackTop);        }    }