private void recordStackMap0(TypedBlock target, int st, TypeData[] tStackTypes) throws BadBytecode { int n = localsTypes.length; TypeData[] tLocalsTypes = new TypeData[n]; int k = copyFrom(n, localsTypes, tLocalsTypes); boolean[] inputs = target.inputs; for (int i = 0; i < n; i++) if (!inputs[i]) tLocalsTypes[i] = TOP; target.setStackMap(st, tStackTypes, k, tLocalsTypes); }
private void recordStackMap(TypedBlock target) throws BadBytecode { TypeData[] tStackTypes = new TypeData[stackTypes.length]; int st = stackTop; copyFrom(st, stackTypes, tStackTypes); recordStackMap0(target, st, tStackTypes); }
private void recordStackMap0(TypedBlock target, int st, TypeData[] tStackTypes) throws BadBytecode { int n = localsTypes.length; TypeData[] tLocalsTypes = new TypeData[n]; int k = copyFrom(n, localsTypes, tLocalsTypes); boolean[] inputs = target.inputs; for (int i = 0; i < n; i++) if (!inputs[i]) tLocalsTypes[i] = TOP; target.setStackMap(st, tStackTypes, k, tLocalsTypes); }
private void recordStackMap(TypedBlock target) throws BadBytecode { TypeData[] tStackTypes = new TypeData[stackTypes.length]; int st = stackTop; copyFrom(st, stackTypes, tStackTypes); recordStackMap0(target, st, tStackTypes); }
/** * Runs an analyzer (Phase 1 and 2). */ void make(TypedBlock[] blocks, byte[] code) throws BadBytecode { TypedBlock first = blocks[0]; fixParamTypes(first); TypeData[] srcTypes = first.localsTypes; copyFrom(srcTypes.length, srcTypes, this.localsTypes); make(code, first); int n = blocks.length; for (int i = 0; i < n; i++) evalExpected(blocks[i]); }
/** * Runs an analyzer (Phase 1 and 2). */ void make(TypedBlock[] blocks, byte[] code) throws BadBytecode { TypedBlock first = blocks[0]; fixParamTypes(first); TypeData[] srcTypes = first.localsTypes; copyFrom(srcTypes.length, srcTypes, this.localsTypes); make(code, first); int n = blocks.length; for (int i = 0; i < n; i++) evalExpected(blocks[i]); }