private void mergeMap(TypedBlock dest, boolean mergeStack) throws BadBytecode { int n = localsTypes.length; for (int i = 0; i < n; i++) dest.localsTypes[i] = merge(validateTypeData(localsTypes, n, i), dest.localsTypes[i]); if (mergeStack) { n = stackTop; for (int i = 0; i < n; i++) dest.stackTypes[i] = merge(stackTypes[i], dest.stackTypes[i]); } }
private void traceException(byte[] code, TypedBlock.Catch handler) throws BadBytecode { while (handler != null) { TypedBlock tb = (TypedBlock)handler.body; if (tb.alreadySet()) { mergeMap(tb, false); if (tb.stackTop < 1) throw new BadBytecode("bad catch clause: " + handler.typeIndex); tb.stackTypes[0] = merge(toExceptionType(handler.typeIndex), tb.stackTypes[0]); } else { recordStackMap(tb, handler.typeIndex); MapMaker maker = new MapMaker(this); maker.make(code, tb); } handler = handler.next; } }
private void traceException(byte[] code, TypedBlock.Catch handler) throws BadBytecode { while (handler != null) { TypedBlock tb = (TypedBlock)handler.body; if (tb.alreadySet()) { mergeMap(tb, false); if (tb.stackTop < 1) throw new BadBytecode("bad catch clause: " + handler.typeIndex); tb.stackTypes[0] = merge(toExceptionType(handler.typeIndex), tb.stackTypes[0]); } else { recordStackMap(tb, handler.typeIndex); MapMaker maker = new MapMaker(this); maker.make(code, tb); } handler = handler.next; } }
private void mergeMap(TypedBlock dest, boolean mergeStack) throws BadBytecode { int n = localsTypes.length; for (int i = 0; i < n; i++) dest.localsTypes[i] = merge(validateTypeData(localsTypes, n, i), dest.localsTypes[i]); if (mergeStack) { n = stackTop; for (int i = 0; i < n; i++) dest.stackTypes[i] = merge(stackTypes[i], dest.stackTypes[i]); } }
private void traceException(byte[] code, TypedBlock.Catch handler) throws BadBytecode { while (handler != null) { TypedBlock tb = (TypedBlock)handler.body; if (tb.alreadySet()) { mergeMap(tb, false); if (tb.stackTop < 1) throw new BadBytecode("bad catch clause: " + handler.typeIndex); tb.stackTypes[0] = merge(toExceptionType(handler.typeIndex), tb.stackTypes[0]); } else { recordStackMap(tb, handler.typeIndex); MapMaker maker = new MapMaker(this); maker.make(code, tb); } handler = handler.next; } }
private void mergeMap(TypedBlock dest, boolean mergeStack) { boolean[] inputs = dest.inputs; int n = inputs.length; for (int i = 0; i < n; i++) if (inputs[i]) merge(localsTypes[i], dest.localsTypes[i]); if (mergeStack) { n = stackTop; for (int i = 0; i < n; i++) merge(stackTypes[i], dest.stackTypes[i]); } }
private void traceException(byte[] code, TypedBlock.Catch handler) throws BadBytecode { while (handler != null) { TypedBlock tb = (TypedBlock)handler.body; if (tb.alreadySet()) { mergeMap(tb, false); if (tb.stackTop < 1) throw new BadBytecode("bad catch clause: " + handler.typeIndex); tb.stackTypes[0] = merge(toExceptionType(handler.typeIndex), tb.stackTypes[0]); } else { recordStackMap(tb, handler.typeIndex); MapMaker maker = new MapMaker(this); maker.make(code, tb); } handler = handler.next; } }
private void mergeMap(TypedBlock dest, boolean mergeStack) { boolean[] inputs = dest.inputs; int n = inputs.length; for (int i = 0; i < n; i++) if (inputs[i]) merge(localsTypes[i], dest.localsTypes[i]); if (mergeStack) { n = stackTop; for (int i = 0; i < n; i++) merge(stackTypes[i], dest.stackTypes[i]); } }
private void traceException(byte[] code, TypedBlock.Catch handler) throws BadBytecode { while (handler != null) { TypedBlock tb = (TypedBlock)handler.body; if (tb.alreadySet()) { mergeMap(tb, false); if (tb.stackTop < 1) throw new BadBytecode("bad catch clause: " + handler.typeIndex); tb.stackTypes[0] = merge(toExceptionType(handler.typeIndex), tb.stackTypes[0]); } else { recordStackMap(tb, handler.typeIndex); MapMaker maker = new MapMaker(this); maker.make(code, tb); } handler = handler.next; } }
private void mergeMap(TypedBlock dest, boolean mergeStack) throws BadBytecode { int n = localsTypes.length; for (int i = 0; i < n; i++) dest.localsTypes[i] = merge(validateTypeData(localsTypes, n, i), dest.localsTypes[i]); if (mergeStack) { n = stackTop; for (int i = 0; i < n; i++) dest.stackTypes[i] = merge(stackTypes[i], dest.stackTypes[i]); } }
private void mergeMap(TypedBlock dest, boolean mergeStack) throws BadBytecode { int n = localsTypes.length; for (int i = 0; i < n; i++) dest.localsTypes[i] = merge(validateTypeData(localsTypes, n, i), dest.localsTypes[i]); if (mergeStack) { n = stackTop; for (int i = 0; i < n; i++) dest.stackTypes[i] = merge(stackTypes[i], dest.stackTypes[i]); } }
private void mergeMap(TypedBlock dest, boolean mergeStack) throws BadBytecode { int n = localsTypes.length; for (int i = 0; i < n; i++) dest.localsTypes[i] = merge(validateTypeData(localsTypes, n, i), dest.localsTypes[i]); if (mergeStack) { n = stackTop; for (int i = 0; i < n; i++) dest.stackTypes[i] = merge(stackTypes[i], dest.stackTypes[i]); } }