private void mergeExceptionHandlers(IntQueue queue, MethodInfo method, int pos, Frame frame) { for (int i = 0; i < exceptions.length; i++) { ExceptionInfo exception = exceptions[i]; // Start is inclusive, while end is exclusive! if (pos >= exception.start && pos < exception.end) { Frame newFrame = frame.copy(); newFrame.clearStack(); newFrame.push(exception.type); merge(queue, newFrame, exception.handler); } } }
private void mergeExceptionHandlers(IntQueue queue, MethodInfo method, int pos, Frame frame) { for (int i = 0; i < exceptions.length; i++) { ExceptionInfo exception = exceptions[i]; // Start is inclusive, while end is exclusive! if (pos >= exception.start && pos < exception.end) { Frame newFrame = frame.copy(); newFrame.clearStack(); newFrame.push(exception.type); merge(queue, newFrame, exception.handler); } } }
frame.push(type);
frame.push(type);
break; case ACONST_NULL: frame.push(Type.UNINIT); break; case ICONST_M1: case ICONST_4: case ICONST_5: frame.push(Type.INTEGER); break; case LCONST_0: case LCONST_1: frame.push(Type.LONG); frame.push(Type.TOP); break; case FCONST_0: case FCONST_1: case FCONST_2: frame.push(Type.FLOAT); break; case DCONST_0: case DCONST_1: frame.push(Type.DOUBLE); frame.push(Type.TOP); break; case BIPUSH: case SIPUSH: frame.push(Type.INTEGER); break;
break; case ACONST_NULL: frame.push(Type.UNINIT); break; case ICONST_M1: case ICONST_4: case ICONST_5: frame.push(Type.INTEGER); break; case LCONST_0: case LCONST_1: frame.push(Type.LONG); frame.push(Type.TOP); break; case FCONST_0: case FCONST_1: case FCONST_2: frame.push(Type.FLOAT); break; case DCONST_0: case DCONST_1: frame.push(Type.DOUBLE); frame.push(Type.TOP); break; case BIPUSH: case SIPUSH: frame.push(Type.INTEGER); break;
private void mergeExceptionHandlers(IntQueue queue, MethodInfo method, int pos, Frame frame) { for (int i = 0; i < exceptions.length; i++) { ExceptionInfo exception = exceptions[i]; // Start is inclusive, while end is exclusive! if (pos >= exception.start && pos < exception.end) { Frame newFrame = frame.copy(); newFrame.clearStack(); newFrame.push(exception.type); merge(queue, newFrame, exception.handler); } } }
private void mergeExceptionHandlers(IntQueue queue, MethodInfo method, int pos, Frame frame) { for (int i = 0; i < exceptions.length; i++) { ExceptionInfo exception = exceptions[i]; // Start is inclusive, while end is exclusive! if (pos >= exception.start && pos < exception.end) { Frame newFrame = frame.copy(); newFrame.clearStack(); newFrame.push(exception.type); merge(queue, newFrame, exception.handler); } } }
private void mergeExceptionHandlers(IntQueue queue, MethodInfo method, int pos, Frame frame) { for (int i = 0; i < exceptions.length; i++) { ExceptionInfo exception = exceptions[i]; // Start is inclusive, while end is exclusive! if (pos >= exception.start && pos < exception.end) { Frame newFrame = frame.copy(); newFrame.clearStack(); newFrame.push(exception.type); merge(queue, newFrame, exception.handler); } } }
private void mergeExceptionHandlers(IntQueue queue, MethodInfo method, int pos, Frame frame) { for (int i = 0; i < exceptions.length; i++) { ExceptionInfo exception = exceptions[i]; // Start is inclusive, while end is exclusive! if (pos >= exception.start && pos < exception.end) { Frame newFrame = frame.copy(); newFrame.clearStack(); newFrame.push(exception.type); merge(queue, newFrame, exception.handler); } } }
frame.push(type);
frame.push(type);
frame.push(type);