@Override public void visitMaxs(int maxStack, int maxLocals) { super.visitMaxs(maxStack, (maxLocals + localVarOffset > 0 ? maxLocals + localVarOffset : 0)); }
@Override public void visitMaxs(int maxStack, int maxLocals) { super.visitMaxs(maxStack < requiredStack ? requiredStack : maxStack, maxLocals); }
@Override public void visitMaxs(int maxStack, int maxLocals) { super.visitMaxs(maxStack, (maxLocals + localVarOffset > 0 ? maxLocals + localVarOffset : 0)); }
@Override public void visitMaxs(final int maxStack, final int maxLocals) { mv.visitMaxs(maxStack, memento.nextLocal); }
public void visitMaxs(int maxStack, int maxLocals) { if (include) { getAdaptee().visitMaxs(maxStack, maxLocals); } }
@Override public void visitEnd() { if (!clinitFound) { MethodVisitor mv = visitMethod(Opcodes.ACC_PUBLIC + Opcodes.ACC_STATIC, CLINIT, "()V", null, null); // NOI18N // this will call this method's visitMethod method, effectively generating the clinit content mv.visitCode(); // need to call visitMaxs explicitely mv.visitMaxs(0, 0); // properly close the method body mv.visitEnd(); } super.visitEnd(); }
public static void generateTimeStampGetter(ClassVisitor cv) { MethodVisitor timestamp = cv.visitMethod(ACC_STATIC + ACC_PRIVATE + ACC_FINAL, TIME_STAMP_NAME, "()J", null, new String[0]); timestamp.visitCode(); timestamp.visitMethodInsn(INVOKESTATIC, "java/lang/System", "nanoTime", "()J"); timestamp.visitInsn(LRETURN); timestamp.visitMaxs(1, 0); timestamp.visitEnd(); }
public void visitEnd() { if (! classInitializerFound) { // add a dummy <clinit> method that just returns. MethodVisitor clinit = visitMethod(ACC_STATIC|ACC_PUBLIC, CLASS_INITIALIZER, "()V", null, null); clinit.visitCode(); clinit.visitInsn(RETURN); clinit.visitMaxs(0, 0); clinit.visitEnd(); } addFields(); super.visitEnd(); }
@Override public void visitEnd() { if (isExtension) { MethodVisitor mv = visitMethod(Opcodes.ACC_STATIC, CLINIT, "()V", null, null); mv.visitCode(); for(InitializerBlock ib : initBlocks) { ib.apply(mv); } mv.visitInsn(Opcodes.RETURN); mv.visitMaxs(Type.getType(BTraceRuntimeBridge.class).getSize(), 0); mv.visitEnd(); } super.visitEnd(); } }