當前位置: 首頁>>代碼示例>>Java>>正文


Java Opcodes.ARETURN屬性代碼示例

本文整理匯總了Java中org.objectweb.asm.Opcodes.ARETURN屬性的典型用法代碼示例。如果您正苦於以下問題:Java Opcodes.ARETURN屬性的具體用法?Java Opcodes.ARETURN怎麽用?Java Opcodes.ARETURN使用的例子?那麽, 這裏精選的屬性代碼示例或許可以為您提供幫助。您也可以進一步了解該屬性所在org.objectweb.asm.Opcodes的用法示例。


在下文中一共展示了Opcodes.ARETURN屬性的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: hookMethod

/**
 * (none-javadoc)
 *
 * @see AbstractClassHook#hookMethod(int, String, String, String, String[], MethodVisitor)
 */
@Override
protected MethodVisitor hookMethod(int access, String name, String desc, String signature, String[] exceptions, MethodVisitor mv) {
    if ("lookup".equals(name) && desc.startsWith("(Ljava/lang/String;)")) {
        return new AdviceAdapter(Opcodes.ASM5, mv, access, name, desc) {
            @Override
            public void onMethodExit(int opcode) {
                if (opcode == Opcodes.ARETURN) {
                    mv.visitVarInsn(ALOAD, 2);
                    mv.visitMethodInsn(INVOKESTATIC, "com/fuxi/javaagent/hook/ProxyDirContextHook", "checkResourceCacheEntry",
                            "(Ljava/lang/Object;)V", false);
                }
                super.onMethodExit(opcode);
            }

        };
    }
    return mv;
}
 
開發者ID:baidu,項目名稱:openrasp,代碼行數:23,代碼來源:ProxyDirContextHook.java

示例2: callBack

@SuppressWarnings("deprecation")
private static void callBack(MethodNode mn) {
    InsnList           nl      = new InsnList();
    AbstractInsnNode[] mnNodes = mn.instructions.toArray();
    for (AbstractInsnNode abstractInsnNode : mnNodes) {
        if (abstractInsnNode.getOpcode() == Opcodes.ARETURN) {
            System.out.println("Injecting ObjectDefinition Callback...");
            nl.add(new VarInsnNode(Opcodes.ILOAD, 0));
            nl.add(new MethodInsnNode(Opcodes.INVOKESTATIC, ObjectDefinitionCallBack.class.getCanonicalName().replace('.', '/'), "add", "(" + "Ljava/lang/Object;I" + ")V"));
            nl.add(new VarInsnNode(Opcodes.ALOAD, 2));

        }
        nl.add(abstractInsnNode);
    }
    mn.instructions = nl;
    mn.visitMaxs(0, 0);
    mn.visitEnd();
}
 
開發者ID:Parabot,項目名稱:Parabot-317-API-Minified-OS-Scape,代碼行數:18,代碼來源:ObjectDefinitionInjector.java

示例3: asmMethodReturn

/**
 * 組裝被攔截方法正常返回時的攔截動作
 */
@SuppressWarnings("unchecked")
private static void asmMethodReturn(MethodModifierContext context) {
    InsnList il = context.mn.instructions;

    Iterator<AbstractInsnNode> it = il.iterator();
    while (it.hasNext()) {
        AbstractInsnNode abstractInsnNode = it.next();

        switch (abstractInsnNode.getOpcode()) {
            case Opcodes.RETURN:
                il.insertBefore(abstractInsnNode, createVoidReturnInstructions(context));
                break;
            case Opcodes.IRETURN:
            case Opcodes.LRETURN:
            case Opcodes.FRETURN:
            case Opcodes.ARETURN:
            case Opcodes.DRETURN:
                il.insertBefore(abstractInsnNode, createReturnInstructions(context));
        }
    }
}
 
開發者ID:yutian-tianpl,項目名稱:byte-cobweb,代碼行數:24,代碼來源:MethodModifier.java

示例4: getReturnTypeCode

/**
 * 針對不同類型返回指令不一樣
 *
 * @param typeS
 * @return
 */
private static int getReturnTypeCode(String typeS) {
    if ("Z".equals(typeS)) {
        return Opcodes.IRETURN;
    }
    if ("B".equals(typeS)) {
        return Opcodes.IRETURN;
    }
    if ("C".equals(typeS)) {
        return Opcodes.IRETURN;
    }
    if ("S".equals(typeS)) {
        return Opcodes.IRETURN;
    }
    if ("I".equals(typeS)) {
        return Opcodes.IRETURN;
    }
    if ("F".equals(typeS)) {
        return Opcodes.FRETURN;
    }
    if ("D".equals(typeS)) {
        return Opcodes.DRETURN;
    }
    if ("J".equals(typeS)) {
        return Opcodes.LRETURN;
    }
    return Opcodes.ARETURN;
}
 
開發者ID:Meituan-Dianping,項目名稱:Robust,代碼行數:33,代碼來源:RobustAsmUtils.java


注:本文中的org.objectweb.asm.Opcodes.ARETURN屬性示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。