CodeEmitter e = new CodeEmitter(this, v, access, sig, exceptions); if (useHook && sig.equals(Constants.SIG_STATIC) && !TypeUtils.isInterface(access)) { seenStatic = true; e.invoke_static_this(STATIC_HOOK);
if (sig.equals(STATIC_HOOK)) { hook = new CodeEmitter(this, v, access, sig, exceptions) { public boolean isStaticHook() { return true; } public void visitMaxs(int maxStack, int maxLocals) { if (ended) { super.visitMaxs(maxStack, maxLocals); } } public void visitInsn(int insn) { if (insn != Constants.RETURN || ended) { super.visitInsn(insn); } } }; return hook; } else { CodeEmitter e = new CodeEmitter(this, v, access, sig, exceptions); if (sig.equals(Constants.SIG_STATIC) && !TypeUtils.isInterface(access)) { seenStatic = true; e.invoke_static_this(STATIC_HOOK); } return e;
    public CodeEmitter begin_method(int access, Signature sig, Type[] exceptions) {        CodeVisitor v = cv.visitMethod(access,                                       sig.getName(),                                       sig.getDescriptor(),                                       TypeUtils.toInternalNames(exceptions));        CodeEmitter e = new CodeEmitter(this, v, access, sig, exceptions);        if (useHook && sig.equals(Constants.SIG_STATIC) && !TypeUtils.isInterface(access)) {            seenStatic = true;            e.invoke_static_this(STATIC_HOOK);        }        return e;    }