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


Java Opcodes.ACC_NATIVE屬性代碼示例

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


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

示例1: getScore

@Override
public double getScore(MethodInstance methodA, MethodInstance methodB, ClassEnvironment env) {
	if (!checkAsmNodes(methodA, methodB)) return compareAsmNodes(methodA, methodB);

	int mask = Opcodes.ACC_STATIC | Opcodes.ACC_NATIVE | Opcodes.ACC_ABSTRACT;
	int resultA = methodA.getAsmNode().access & mask;
	int resultB = methodB.getAsmNode().access & mask;

	return 1 - Integer.bitCount(resultA ^ resultB) / 3.;
}
 
開發者ID:sfPlayer1,項目名稱:Matcher,代碼行數:10,代碼來源:MethodClassifier.java

示例2: resolveSignaturePolymorphicMethod

private MethodInstance resolveSignaturePolymorphicMethod(String name) {
	if (id.equals("Ljava/lang/invoke/MethodHandle;")) { // check for signature polymorphic method - jvms-2.9
		MethodInstance ret = getMethod(name, "([Ljava/lang/Object;)Ljava/lang/Object;");
		final int reqFlags = Opcodes.ACC_VARARGS | Opcodes.ACC_NATIVE;

		if (ret != null && (ret.asmNode == null || (ret.asmNode.access & reqFlags) == reqFlags)) {
			return ret;
		}
	}

	return null;
}
 
開發者ID:sfPlayer1,項目名稱:Matcher,代碼行數:12,代碼來源:ClassInstance.java

示例3: visitMethod

@Override
public MethodVisitor visitMethod(final int access, final String name,
        final String desc, final String signature, final String[] exceptions) {
    if (computeSVUID) {
        if ("<clinit>".equals(name)) {
            hasStaticInitializer = true;
        }
        /*
         * Remembers non private constructors and methods for SVUID
         * computation For constructor and method modifiers, only the
         * ACC_PUBLIC, ACC_PRIVATE, ACC_PROTECTED, ACC_STATIC, ACC_FINAL,
         * ACC_SYNCHRONIZED, ACC_NATIVE, ACC_ABSTRACT and ACC_STRICT flags
         * are used.
         */
        int mods = access
                & (Opcodes.ACC_PUBLIC | Opcodes.ACC_PRIVATE
                        | Opcodes.ACC_PROTECTED | Opcodes.ACC_STATIC
                        | Opcodes.ACC_FINAL | Opcodes.ACC_SYNCHRONIZED
                        | Opcodes.ACC_NATIVE | Opcodes.ACC_ABSTRACT | Opcodes.ACC_STRICT);

        // all non private methods
        if ((access & Opcodes.ACC_PRIVATE) == 0) {
            if ("<init>".equals(name)) {
                svuidConstructors.add(new Item(name, mods, desc));
            } else if (!"<clinit>".equals(name)) {
                svuidMethods.add(new Item(name, mods, desc));
            }
        }
    }

    return super.visitMethod(access, name, desc, signature, exceptions);
}
 
開發者ID:ItzSomebody,項目名稱:DirectLeaks-AntiReleak-Remover,代碼行數:32,代碼來源:SerialVersionUIDAdder.java

示例4: instrument

private boolean instrument(String name, String signature, int access) {
	return 
		(access & Opcodes.ACC_ABSTRACT) == 0 && 
		(access & Opcodes.ACC_BRIDGE) == 0 && 
		(access & Opcodes.ACC_NATIVE) == 0 &&
		(isEntryPoint(name, signature) || isExitPoint(name, signature));
}
 
開發者ID:RuiChen08,項目名稱:dacapobench,代碼行數:7,代碼來源:LogInstrument.java

示例5: appendAccess

static void appendAccess(final int access, final StringBuilder sb) {
    if ((access & Opcodes.ACC_PUBLIC) != 0) {
        sb.append("public ");
    }
    if ((access & Opcodes.ACC_PRIVATE) != 0) {
        sb.append("private ");
    }
    if ((access & Opcodes.ACC_PROTECTED) != 0) {
        sb.append("protected ");
    }
    if ((access & Opcodes.ACC_FINAL) != 0) {
        sb.append("final ");
    }
    if ((access & Opcodes.ACC_STATIC) != 0) {
        sb.append("static ");
    }
    if ((access & Opcodes.ACC_SUPER) != 0) {
        if ((access & ACCESS_CLASS) == 0) {
            sb.append("synchronized ");
        } else {
            sb.append("super ");
        }
    }
    if ((access & Opcodes.ACC_VOLATILE) != 0) {
        if ((access & ACCESS_FIELD) == 0) {
            sb.append("bridge ");
        } else {
            sb.append("volatile ");
        }
    }
    if ((access & Opcodes.ACC_TRANSIENT) != 0) {
        if ((access & ACCESS_FIELD) == 0) {
            sb.append("varargs ");
        } else {
            sb.append("transient ");
        }
    }
    if ((access & Opcodes.ACC_NATIVE) != 0) {
        sb.append("native ");
    }
    if ((access & Opcodes.ACC_STRICT) != 0) {
        sb.append("strict ");
    }
    if ((access & Opcodes.ACC_INTERFACE) != 0) {
        sb.append("interface ");
    }
    if ((access & Opcodes.ACC_ABSTRACT) != 0) {
        sb.append("abstract ");
    }
    if ((access & Opcodes.ACC_SYNTHETIC) != 0) {
        sb.append("synthetic ");
    }
    if ((access & Opcodes.ACC_ANNOTATION) != 0) {
        sb.append("annotation ");
    }
    if ((access & Opcodes.ACC_ENUM) != 0) {
        sb.append("enum ");
    }
    if ((access & Opcodes.ACC_DEPRECATED) != 0) {
        sb.append("deprecated ");
    }
    if ((access & Opcodes.ACC_MANDATED) != 0) {
        sb.append("mandated ");
    }
}
 
開發者ID:ItzSomebody,項目名稱:DirectLeaks-AntiReleak-Remover,代碼行數:65,代碼來源:SAXClassAdapter.java

示例6: visitCode

@Override
public final void visitCode() {
    if ((access & (Opcodes.ACC_ABSTRACT | Opcodes.ACC_INTERFACE | Opcodes.ACC_NATIVE)) == 0) {
        sa.addStart("code", new AttributesImpl());
    }
}
 
開發者ID:acmerli,項目名稱:fastAOP,代碼行數:6,代碼來源:SAXCodeAdapter.java

示例7: visitMethod

@Override
public Textifier visitMethod(final int access, final String name,
        final String desc, final String signature, final String[] exceptions) {
    buf.setLength(0);
    buf.append('\n');
    if ((access & Opcodes.ACC_DEPRECATED) != 0) {
        buf.append(tab).append("// DEPRECATED\n");
    }
    buf.append(tab).append("// access flags 0x")
            .append(Integer.toHexString(access).toUpperCase()).append('\n');

    if (signature != null) {
        buf.append(tab);
        appendDescriptor(METHOD_SIGNATURE, signature);

        TraceSignatureVisitor v = new TraceSignatureVisitor(0);
        SignatureReader r = new SignatureReader(signature);
        r.accept(v);
        String genericDecl = v.getDeclaration();
        String genericReturn = v.getReturnType();
        String genericExceptions = v.getExceptions();

        buf.append(tab).append("// declaration: ").append(genericReturn)
                .append(' ').append(name).append(genericDecl);
        if (genericExceptions != null) {
            buf.append(" throws ").append(genericExceptions);
        }
        buf.append('\n');
    }

    buf.append(tab);
    appendAccess(access & ~Opcodes.ACC_VOLATILE);
    if ((access & Opcodes.ACC_NATIVE) != 0) {
        buf.append("native ");
    }
    if ((access & Opcodes.ACC_VARARGS) != 0) {
        buf.append("varargs ");
    }
    if ((access & Opcodes.ACC_BRIDGE) != 0) {
        buf.append("bridge ");
    }
    if ((this.access & Opcodes.ACC_INTERFACE) != 0
            && (access & Opcodes.ACC_ABSTRACT) == 0
            && (access & Opcodes.ACC_STATIC) == 0) {
        buf.append("default ");
    }

    buf.append(name);
    appendDescriptor(METHOD_DESCRIPTOR, desc);
    if (exceptions != null && exceptions.length > 0) {
        buf.append(" throws ");
        for (int i = 0; i < exceptions.length; ++i) {
            appendDescriptor(INTERNAL_NAME, exceptions[i]);
            buf.append(' ');
        }
    }

    buf.append('\n');
    text.add(buf.toString());

    Textifier t = createTextifier();
    text.add(t.getText());
    return t;
}
 
開發者ID:ItzSomebody,項目名稱:DirectLeaks-AntiReleak-Remover,代碼行數:64,代碼來源:Textifier.java

示例8: isNative

public static MethodAccessMatch isNative() {
    return new MethodAccessMatch(Opcodes.ACC_NATIVE);
}
 
開發者ID:yutian-tianpl,項目名稱:byte-cobweb,代碼行數:3,代碼來源:MethodMatchers.java

示例9: instrument

private boolean instrument(int access) {
	return 
		(access & Opcodes.ACC_ABSTRACT) == 0 && 
		(access & Opcodes.ACC_BRIDGE) == 0 && 
		(access & Opcodes.ACC_NATIVE) == 0;
}
 
開發者ID:RuiChen08,項目名稱:dacapobench,代碼行數:6,代碼來源:MonitorInstrument.java

示例10: instrument

private boolean instrument(String name, int access) {
	return (access & Opcodes.ACC_ABSTRACT) == 0 && (access & Opcodes.ACC_BRIDGE) == 0 && (access & Opcodes.ACC_NATIVE) == 0;
}
 
開發者ID:RuiChen08,項目名稱:dacapobench,代碼行數:3,代碼來源:CallChainInstrument.java

示例11: standardMethod

private static boolean standardMethod(int access, boolean isStatic) {
	return (access & Opcodes.ACC_NATIVE) == 0 && (access & Opcodes.ACC_ABSTRACT) == 0 && (access & Opcodes.ACC_STATIC)==(isStatic?Opcodes.ACC_STATIC:0); 
}
 
開發者ID:RuiChen08,項目名稱:dacapobench,代碼行數:3,代碼來源:ClinitInstrument.java

示例12: instrument

private boolean instrument(int access) {
	return (access & Opcodes.ACC_ABSTRACT) == 0
			&& (access & Opcodes.ACC_BRIDGE) == 0
			&& (access & Opcodes.ACC_NATIVE) == 0;
}
 
開發者ID:RuiChen08,項目名稱:dacapobench,代碼行數:5,代碼來源:AllocateInstrument.java

示例13: instrument

private boolean instrument(String name, int access) {
	return (access & Opcodes.ACC_ABSTRACT) == 0 && (access & Opcodes.ACC_BRIDGE) == 0 && (access & Opcodes.ACC_NATIVE) == 0 && !CLINIT_NAME.equals(name);
}
 
開發者ID:RuiChen08,項目名稱:dacapobench,代碼行數:3,代碼來源:MethodInstrument.java

示例14: instrument

private boolean instrument(int access) {
	return (access & Opcodes.ACC_ABSTRACT) == 0 && (access & Opcodes.ACC_BRIDGE) == 0 && (access & Opcodes.ACC_NATIVE) == 0;
}
 
開發者ID:RuiChen08,項目名稱:dacapobench,代碼行數:3,代碼來源:RuntimeInstrument.java

示例15: isNative

private boolean isNative(int access) {
    return (Opcodes.ACC_NATIVE & access) == Opcodes.ACC_NATIVE;
}
 
開發者ID:alibaba,項目名稱:jvm-sandbox,代碼行數:3,代碼來源:EventEnhancer.java


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