Package org.apache.harmony.pack200.bytecode

Examples of org.apache.harmony.pack200.bytecode.OperandManager


            18, // ldc 2
            -49, // return 4
    };

    public void testLength() {
        OperandManager operandManager = new MockOperandManager();
        operandManager.setSegment(segment);
        operandManager.setCurrentClass("java/lang/Foo");

        MockCodeAttribute attribute = new MockCodeAttribute(3, // maxStack
                2, // maxLocals
                mixedByteArray, // codePacked
                segment, // segment
View Full Code Here


                null, null, null));
        assertEquals(37, attribute.getLength());
    }

    public void testMixedByteCodes() {
        OperandManager operandManager = new MockOperandManager();
        operandManager.setSegment(segment);
        operandManager.setCurrentClass("java/lang/Foo");

        CodeAttribute attribute = new CodeAttribute(3, // maxStack
                2, // maxLocals
                mixedByteArray, // codePacked
                segment, // segment
View Full Code Here

                    ((Integer) attribute.byteCodeOffsets.get(index)).intValue());
        }
    }

    public void testSingleByteCodes() {
        OperandManager operandManager = new MockOperandManager();
        operandManager.setSegment(segment);
        operandManager.setCurrentClass("java/lang/Foo");

        CodeAttribute attribute = new CodeAttribute(4, // maxStack
                3, // maxLocals
                singleByteArray, // codePacked
                segment, // segment
View Full Code Here

            18, // ldc 2
            -49, // return 4
    };

    public void testLength() {
        OperandManager operandManager = new MockOperandManager();
        operandManager.setSegment(segment);
        operandManager.setCurrentClass("java/lang/Foo");

        MockCodeAttribute attribute = new MockCodeAttribute(3, // maxStack
                2, // maxLocals
                mixedByteArray, // codePacked
                segment, // segment
View Full Code Here

                null, null, null));
        assertEquals(37, attribute.getLength());
    }

    public void testMixedByteCodes() {
        OperandManager operandManager = new MockOperandManager();
        operandManager.setSegment(segment);
        operandManager.setCurrentClass("java/lang/Foo");

        CodeAttribute attribute = new CodeAttribute(3, // maxStack
                2, // maxLocals
                mixedByteArray, // codePacked
                segment, // segment
View Full Code Here

                    ((Integer) attribute.byteCodeOffsets.get(index)).intValue());
        }
    }

    public void testSingleByteCodes() {
        OperandManager operandManager = new MockOperandManager();
        operandManager.setSegment(segment);
        operandManager.setCurrentClass("java/lang/Foo");

        CodeAttribute attribute = new CodeAttribute(4, // maxStack
                3, // maxLocals
                singleByteArray, // codePacked
                segment, // segment
View Full Code Here

        int[] wideByteCodeArray = new int[wideByteCodes.size()];
        for (int index = 0; index < wideByteCodeArray.length; index++) {
            wideByteCodeArray[index] = ((Integer) wideByteCodes.get(index))
                    .intValue();
        }
        OperandManager operandManager = new OperandManager(bcCaseCount,
                bcCaseValue, bcByte, bcShort, bcLocal, bcLabel, bcIntRef,
                bcFloatRef, bcLongRef, bcDoubleRef, bcStringRef, bcClassRef,
                bcFieldRef, bcMethodRef, bcIMethodRef, bcThisField,
                bcSuperField, bcThisMethod, bcSuperMethod, bcInitRef,
                wideByteCodeArray);
        operandManager.setSegment(segment);

        int i = 0;
        ArrayList orderedCodeAttributes = segment.getClassBands()
                .getOrderedCodeAttributes();
        int codeAttributeIndex = 0;

        // Exception table fields
        int[] handlerCount = segment.getClassBands().getCodeHandlerCount();
        int[][] handlerStartPCs = segment.getClassBands()
                .getCodeHandlerStartP();
        int[][] handlerEndPCs = segment.getClassBands().getCodeHandlerEndPO();
        int[][] handlerCatchPCs = segment.getClassBands()
                .getCodeHandlerCatchPO();
        int[][] handlerClassTypes = segment.getClassBands()
                .getCodeHandlerClassRCN();

        boolean allCodeHasFlags = segment.getSegmentHeader().getOptions().hasAllCodeFlags();
        boolean[] codeHasFlags = segment.getClassBands().getCodeHasAttributes();

        for (int c = 0; c < classCount; c++) {
            int numberOfMethods = methodFlags[c].length;
            for (int m = 0; m < numberOfMethods; m++) {
                long methodFlag = methodFlags[c][m];
                if (!abstractModifier.matches(methodFlag)
                        && !nativeModifier.matches(methodFlag)) {
                    int maxStack = codeMaxStack[i];
                    int maxLocal = codeMaxNALocals[i];
                    if (!staticModifier.matches(methodFlag))
                        maxLocal++; // one for 'this' parameter
                    // I believe this has to take wide arguments into account
                    maxLocal += SegmentUtils
                            .countInvokeInterfaceArgs(methodDescr[c][m]);
                    String[] cpClass = segment.getCpBands().getCpClass();
                    operandManager.setCurrentClass(cpClass[segment
                            .getClassBands().getClassThisInts()[c]]);
                    operandManager.setSuperClass(cpClass[segment
                            .getClassBands().getClassSuperInts()[c]]);
                    List exceptionTable = new ArrayList();
                    if (handlerCount != null) {
                        for (int j = 0; j < handlerCount[i]; j++) {
                            int handlerClass = handlerClassTypes[i][j] - 1;
View Full Code Here

        int[] wideByteCodeArray = new int[wideByteCodes.size()];
        for (int index = 0; index < wideByteCodeArray.length; index++) {
            wideByteCodeArray[index] = ((Integer) wideByteCodes.get(index))
                    .intValue();
        }
        OperandManager operandManager = new OperandManager(bcCaseCount,
                bcCaseValue, bcByte, bcShort, bcLocal, bcLabel, bcIntRef,
                bcFloatRef, bcLongRef, bcDoubleRef, bcStringRef, bcClassRef,
                bcFieldRef, bcMethodRef, bcIMethodRef, bcThisField,
                bcSuperField, bcThisMethod, bcSuperMethod, bcInitRef,
                wideByteCodeArray);
        operandManager.setSegment(segment);

        int i = 0;
        ArrayList orderedCodeAttributes = segment.getClassBands()
                .getOrderedCodeAttributes();
        int codeAttributeIndex = 0;

        // Exception table fields
        int[] handlerCount = segment.getClassBands().getCodeHandlerCount();
        int[][] handlerStartPCs = segment.getClassBands()
                .getCodeHandlerStartP();
        int[][] handlerEndPCs = segment.getClassBands().getCodeHandlerEndPO();
        int[][] handlerCatchPCs = segment.getClassBands()
                .getCodeHandlerCatchPO();
        int[][] handlerClassTypes = segment.getClassBands()
                .getCodeHandlerClassRCN();

        boolean allCodeHasFlags = segment.getSegmentHeader().getOptions().hasAllCodeFlags();
        boolean[] codeHasFlags = segment.getClassBands().getCodeHasAttributes();

        for (int c = 0; c < classCount; c++) {
            int numberOfMethods = methodFlags[c].length;
            for (int m = 0; m < numberOfMethods; m++) {
                long methodFlag = methodFlags[c][m];
                if (!abstractModifier.matches(methodFlag)
                        && !nativeModifier.matches(methodFlag)) {
                    int maxStack = codeMaxStack[i];
                    int maxLocal = codeMaxNALocals[i];
                    if (!staticModifier.matches(methodFlag))
                        maxLocal++; // one for 'this' parameter
                    // I believe this has to take wide arguments into account
                    maxLocal += SegmentUtils
                            .countInvokeInterfaceArgs(methodDescr[c][m]);
                    String[] cpClass = segment.getCpBands().getCpClass();
                    operandManager.setCurrentClass(cpClass[segment
                            .getClassBands().getClassThisInts()[c]]);
                    operandManager.setSuperClass(cpClass[segment
                            .getClassBands().getClassSuperInts()[c]]);
                    List exceptionTable = new ArrayList();
                    if (handlerCount != null) {
                        for (int j = 0; j < handlerCount[i]; j++) {
                            int handlerClass = handlerClassTypes[i][j] - 1;
View Full Code Here

        int[] wideByteCodeArray = new int[wideByteCodes.size()];
        for (int index = 0; index < wideByteCodeArray.length; index++) {
            wideByteCodeArray[index] = ((Integer) wideByteCodes.get(index))
                    .intValue();
        }
        OperandManager operandManager = new OperandManager(bcCaseCount,
                bcCaseValue, bcByte, bcShort, bcLocal, bcLabel, bcIntRef,
                bcFloatRef, bcLongRef, bcDoubleRef, bcStringRef, bcClassRef,
                bcFieldRef, bcMethodRef, bcIMethodRef, bcThisField,
                bcSuperField, bcThisMethod, bcSuperMethod, bcInitRef,
                wideByteCodeArray);
        operandManager.setSegment(segment);

        int i = 0;
        ArrayList orderedCodeAttributes = segment.getClassBands()
                .getOrderedCodeAttributes();

        // Exception table fields
        int[] handlerCount = segment.getClassBands().getCodeHandlerCount();
        int[][] handlerStartPCs = segment.getClassBands()
                .getCodeHandlerStartP();
        int[][] handlerEndPCs = segment.getClassBands().getCodeHandlerEndPO();
        int[][] handlerCatchPCs = segment.getClassBands()
                .getCodeHandlerCatchPO();
        int[][] handlerClassTypes = segment.getClassBands()
                .getCodeHandlerClassRCN();

        for (int c = 0; c < classCount; c++) {
            int numberOfMethods = methodFlags[c].length;
            for (int m = 0; m < numberOfMethods; m++) {
                long methodFlag = methodFlags[c][m];
                if (!abstractModifier.matches(methodFlag)
                        && !nativeModifier.matches(methodFlag)) {
                    int maxStack = codeMaxStack[i];
                    int maxLocal = codeMaxNALocals[i];
                    if (!staticModifier.matches(methodFlag))
                        maxLocal++; // one for 'this' parameter
                    // I believe this has to take wide arguments into account
                    maxLocal += SegmentUtils
                            .countInvokeInterfaceArgs(methodDescr[c][m]);
                    String[] cpClass = segment.getCpBands().getCpClass();
                    operandManager.setCurrentClass(cpClass[segment
                            .getClassBands().getClassThisInts()[c]]);
                    operandManager.setSuperClass(cpClass[segment
                            .getClassBands().getClassSuperInts()[c]]);
                    List exceptionTable = new ArrayList();
                    if (handlerCount != null) {
                        for (int j = 0; j < handlerCount[i]; j++) {
                            int handlerClass = handlerClassTypes[i][j] - 1;
View Full Code Here

        int[] wideByteCodeArray = new int[wideByteCodes.size()];
        for (int index = 0; index < wideByteCodeArray.length; index++) {
            wideByteCodeArray[index] = ((Integer) wideByteCodes.get(index))
                    .intValue();
        }
        OperandManager operandManager = new OperandManager(bcCaseCount,
                bcCaseValue, bcByte, bcShort, bcLocal, bcLabel, bcIntRef,
                bcFloatRef, bcLongRef, bcDoubleRef, bcStringRef, bcClassRef,
                bcFieldRef, bcMethodRef, bcIMethodRef, bcThisField,
                bcSuperField, bcThisMethod, bcSuperMethod, bcInitRef,
                wideByteCodeArray);
        operandManager.setSegment(segment);

        int i = 0;
        ArrayList orderedCodeAttributes = segment.getClassBands()
                .getOrderedCodeAttributes();

        // Exception table fields
        int[] handlerCount = segment.getClassBands().getCodeHandlerCount();
        int[][] handlerStartPCs = segment.getClassBands()
                .getCodeHandlerStartP();
        int[][] handlerEndPCs = segment.getClassBands().getCodeHandlerEndPO();
        int[][] handlerCatchPCs = segment.getClassBands()
                .getCodeHandlerCatchPO();
        int[][] handlerClassTypes = segment.getClassBands()
                .getCodeHandlerClassRCN();

        for (int c = 0; c < classCount; c++) {
            int numberOfMethods = methodFlags[c].length;
            for (int m = 0; m < numberOfMethods; m++) {
                long methodFlag = methodFlags[c][m];
                if (!abstractModifier.matches(methodFlag)
                        && !nativeModifier.matches(methodFlag)) {
                    int maxStack = codeMaxStack[i];
                    int maxLocal = codeMaxNALocals[i];
                    if (!staticModifier.matches(methodFlag))
                        maxLocal++; // one for 'this' parameter
                    // I believe this has to take wide arguments into account
                    maxLocal += SegmentUtils
                            .countInvokeInterfaceArgs(methodDescr[c][m]);
                    String[] cpClass = segment.getCpBands().getCpClass();
                    operandManager.setCurrentClass(cpClass[segment.getClassBands()
                            .getClassThisInts()[c]]);
                    operandManager.setSuperClass(cpClass[segment.getClassBands()
                            .getClassSuperInts()[c]]);
                    List exceptionTable = new ArrayList();
                    if (handlerCount != null) {
                        for (int j = 0; j < handlerCount[i]; j++) {
                            int handlerClass = handlerClassTypes[i][j] - 1;
View Full Code Here

TOP

Related Classes of org.apache.harmony.pack200.bytecode.OperandManager

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.