private void visitImplicitFirstFrame() {
        // There can be at most descriptor.length() + 1 locals
        int frameIndex = startFrame(0, descriptor.length() + 1, 0);
        if ((access & Opcodes.ACC_STATIC) == 0) {
            if ((access & ACC_CONSTRUCTOR) == 0) {
                frame[frameIndex++] = Frame.OBJECT | cw.addType(cw.thisName);
            } else {
                frame[frameIndex++] = 6; // Opcodes.UNINITIALIZED_THIS;
            }
        }
        int i = 1;
        loop: while (true) {
            int j = i;
            switch (descriptor.charAt(i++)) {
            case 'Z':
            case 'C':
            case 'B':
            case 'S':
            case 'I':
                frame[frameIndex++] = 1; // Opcodes.INTEGER;
                break;
            case 'F':
                frame[frameIndex++] = 2; // Opcodes.FLOAT;
                break;
            case 'J':
                frame[frameIndex++] = 4; // Opcodes.LONG;
                break;
            case 'D':
                frame[frameIndex++] = 3; // Opcodes.DOUBLE;
                break;
            case '[':
                while (descriptor.charAt(i) == '[') {
                    ++i;
                }
                if (descriptor.charAt(i) == 'L') {
                    ++i;
                    while (descriptor.charAt(i) != ';') {
                        ++i;
                    }
                }
                frame[frameIndex++] = Frame.OBJECT
                        | cw.addType(descriptor.substring(j, ++i));
                break;
            case 'L':
                while (descriptor.charAt(i) != ';') {
                    ++i;
                }
                frame[frameIndex++] = Frame.OBJECT
                        | cw.addType(descriptor.substring(j + 1, i++));
                break;
            default:
                break loop;
            }
        }
        frame[1] = frameIndex - 3;
        endFrame();
    }
private void visitImplicitFirstFrame() {
        
        int frameIndex = startFrame(0, descriptor.length() + 1, 0);
        if ((access & Opcodes.ACC_STATIC) == 0) {
            if ((access & ACC_CONSTRUCTOR) == 0) {
                frame[frameIndex++] = Frame.OBJECT | cw.addType(cw.thisName);
            } else {
                frame[frameIndex++] = 6; 
            }
        }
        int i = 1;
        loop: while (true) {
            int j = i;
            switch (descriptor.charAt(i++)) {
            case 'Z':
            case 'C':
            case 'B':
            case 'S':
            case 'I':
                frame[frameIndex++] = 1; 
                break;
            case 'F':
                frame[frameIndex++] = 2; 
                break;
            case 'J':
                frame[frameIndex++] = 4; 
                break;
            case 'D':
                frame[frameIndex++] = 3; 
                break;
            case '[':
                while (descriptor.charAt(i) == '[') {
                    ++i;
                }
                if (descriptor.charAt(i) == 'L') {
                    ++i;
                    while (descriptor.charAt(i) != ';') {
                        ++i;
                    }
                }
                frame[frameIndex++] = Frame.OBJECT
                        | cw.addType(descriptor.substring(j, ++i));
                break;
            case 'L':
                while (descriptor.charAt(i) != ';') {
                    ++i;
                }
                frame[frameIndex++] = Frame.OBJECT
                        | cw.addType(descriptor.substring(j + 1, i++));
                break;
            default:
                break loop;
            }
        }
        frame[1] = frameIndex - 3;
        endFrame();
    }
private void visitImplicitFirstFrame ( ) { // There can be at most descriptor.length() + 1 locals int frameIndex = startFrame ( 0 , descriptor . length ( ) + 1 , 0 ) ; if ( ( access & Opcodes . ACC_STATIC ) == 0 ) { if ( ( access & ACC_CONSTRUCTOR ) == 0 ) { frame [ frameIndex ++ ] = Frame . OBJECT | cw . addType ( cw . thisName ) ; } else { frame [ frameIndex ++ ] = 6 ; // Opcodes.UNINITIALIZED_THIS; } } int i = 1 ; loop : while ( true ) { int j = i ; switch ( descriptor . charAt ( i ++ ) ) { case ' ' : case ' ' : case ' ' : case ' ' : case ' ' : frame [ frameIndex ++ ] = 1 ; // Opcodes.INTEGER; break ; case ' ' : frame [ frameIndex ++ ] = 2 ; // Opcodes.FLOAT; break ; case ' ' : frame [ frameIndex ++ ] = 4 ; // Opcodes.LONG; break ; case ' ' : frame [ frameIndex ++ ] = 3 ; // Opcodes.DOUBLE; break ; case ' ' : while ( descriptor . charAt ( i ) == ' ' ) { ++ i ; } if ( descriptor . charAt ( i ) == ' ' ) { ++ i ; while ( descriptor . charAt ( i ) != ' ' ) { ++ i ; } } frame [ frameIndex ++ ] = Frame . OBJECT | cw . addType ( descriptor . substring ( j , ++ i ) ) ; break ; case ' ' : while ( descriptor . charAt ( i ) != ' ' ) { ++ i ; } frame [ frameIndex ++ ] = Frame . OBJECT | cw . addType ( descriptor . substring ( j + 1 , i ++ ) ) ; break ; default : break loop ; } } frame [ 1 ] = frameIndex - 3 ; endFrame ( ) ; }
Visit the implicit first frame of this method.
Visit the implicit first frame of this method .