38 #include "java_lang_Class.h" 39 40 /* defined in libverify.so/verify.dll (src file common/check_format.c) */ 41 extern jboolean VerifyClassname(char *utf_name, jboolean arrayAllowed); 42 extern jboolean VerifyFixClassname(char *utf_name); 43 44 #define OBJ "Ljava/lang/Object;" 45 #define CLS "Ljava/lang/Class;" 46 #define CPL "Lsun/reflect/ConstantPool;" 47 #define STR "Ljava/lang/String;" 48 #define JCL "Ljava/lang/ClassLoader;" 49 #define FLD "Ljava/lang/reflect/Field;" 50 #define MHD "Ljava/lang/reflect/Method;" 51 #define CTR "Ljava/lang/reflect/Constructor;" 52 #define PD "Ljava/security/ProtectionDomain;" 53 #define BA "[B" 54 55 static JNINativeMethod methods[] = { 56 {"getName0", "()" STR, (void *)&JVM_GetClassName}, 57 {"getSuperclass", "()" CLS, NULL}, 58 {"getInterfaces", "()[" CLS, (void *)&JVM_GetClassInterfaces}, 59 {"getClassLoader0", "()" JCL, (void *)&JVM_GetClassLoader}, 60 {"isInterface", "()Z", (void *)&JVM_IsInterface}, 61 {"getSigners", "()[" OBJ, (void *)&JVM_GetClassSigners}, 62 {"setSigners", "([" OBJ ")V", (void *)&JVM_SetClassSigners}, 63 {"isArray", "()Z", (void *)&JVM_IsArrayClass}, 64 {"isPrimitive", "()Z", (void *)&JVM_IsPrimitiveClass}, 65 {"getComponentType", "()" CLS, (void *)&JVM_GetComponentType}, 66 {"getModifiers", "()I", (void *)&JVM_GetClassModifiers}, 67 {"getDeclaredFields0","(Z)[" FLD, (void *)&JVM_GetClassDeclaredFields}, 68 {"getDeclaredMethods0","(Z)[" MHD, (void *)&JVM_GetClassDeclaredMethods}, 69 {"getDeclaredConstructors0","(Z)[" CTR, (void *)&JVM_GetClassDeclaredConstructors}, 70 {"getProtectionDomain0", "()" PD, (void *)&JVM_GetProtectionDomain}, 71 {"getDeclaredClasses0", "()[" CLS, (void *)&JVM_GetDeclaredClasses}, 72 {"getDeclaringClass", "()" CLS, (void *)&JVM_GetDeclaringClass}, 73 {"getGenericSignature", "()" STR, (void *)&JVM_GetClassSignature}, 74 {"getRawAnnotations", "()" BA, (void *)&JVM_GetClassAnnotations}, 75 {"getConstantPool", "()" CPL, (void *)&JVM_GetClassConstantPool}, 76 {"desiredAssertionStatus0","("CLS")Z",(void *)&JVM_DesiredAssertionStatus}, 77 {"getEnclosingMethod0", "()[" OBJ, (void *)&JVM_GetEnclosingMethodInfo}, 78 {"getRawTypeAnnotations", "()" BA, (void *)&JVM_GetClassTypeAnnotations}, 79 }; 80 81 #undef OBJ 82 #undef CLS 83 #undef STR 84 #undef JCL 85 #undef FLD 86 #undef MHD 87 #undef CTR 88 #undef PD 89 90 JNIEXPORT void JNICALL 91 Java_java_lang_Class_registerNatives(JNIEnv *env, jclass cls) 92 { 93 methods[1].fnPtr = (void *)(*env)->GetSuperclass; | 38 #include "java_lang_Class.h" 39 40 /* defined in libverify.so/verify.dll (src file common/check_format.c) */ 41 extern jboolean VerifyClassname(char *utf_name, jboolean arrayAllowed); 42 extern jboolean VerifyFixClassname(char *utf_name); 43 44 #define OBJ "Ljava/lang/Object;" 45 #define CLS "Ljava/lang/Class;" 46 #define CPL "Lsun/reflect/ConstantPool;" 47 #define STR "Ljava/lang/String;" 48 #define JCL "Ljava/lang/ClassLoader;" 49 #define FLD "Ljava/lang/reflect/Field;" 50 #define MHD "Ljava/lang/reflect/Method;" 51 #define CTR "Ljava/lang/reflect/Constructor;" 52 #define PD "Ljava/security/ProtectionDomain;" 53 #define BA "[B" 54 55 static JNINativeMethod methods[] = { 56 {"getName0", "()" STR, (void *)&JVM_GetClassName}, 57 {"getSuperclass", "()" CLS, NULL}, 58 {"getInterfaces0", "()[" CLS, (void *)&JVM_GetClassInterfaces}, 59 {"getClassLoader0", "()" JCL, (void *)&JVM_GetClassLoader}, 60 {"isInterface", "()Z", (void *)&JVM_IsInterface}, 61 {"getSigners", "()[" OBJ, (void *)&JVM_GetClassSigners}, 62 {"setSigners", "([" OBJ ")V", (void *)&JVM_SetClassSigners}, 63 {"isArray", "()Z", (void *)&JVM_IsArrayClass}, 64 {"isPrimitive", "()Z", (void *)&JVM_IsPrimitiveClass}, 65 {"getComponentType", "()" CLS, (void *)&JVM_GetComponentType}, 66 {"getModifiers", "()I", (void *)&JVM_GetClassModifiers}, 67 {"getDeclaredFields0","(Z)[" FLD, (void *)&JVM_GetClassDeclaredFields}, 68 {"getDeclaredMethods0","(Z)[" MHD, (void *)&JVM_GetClassDeclaredMethods}, 69 {"getDeclaredConstructors0","(Z)[" CTR, (void *)&JVM_GetClassDeclaredConstructors}, 70 {"getProtectionDomain0", "()" PD, (void *)&JVM_GetProtectionDomain}, 71 {"getDeclaredClasses0", "()[" CLS, (void *)&JVM_GetDeclaredClasses}, 72 {"getDeclaringClass", "()" CLS, (void *)&JVM_GetDeclaringClass}, 73 {"getGenericSignature0", "()" STR, (void *)&JVM_GetClassSignature}, 74 {"getRawAnnotations", "()" BA, (void *)&JVM_GetClassAnnotations}, 75 {"getConstantPool", "()" CPL, (void *)&JVM_GetClassConstantPool}, 76 {"desiredAssertionStatus0","("CLS")Z",(void *)&JVM_DesiredAssertionStatus}, 77 {"getEnclosingMethod0", "()[" OBJ, (void *)&JVM_GetEnclosingMethodInfo}, 78 {"getRawTypeAnnotations", "()" BA, (void *)&JVM_GetClassTypeAnnotations}, 79 }; 80 81 #undef OBJ 82 #undef CLS 83 #undef STR 84 #undef JCL 85 #undef FLD 86 #undef MHD 87 #undef CTR 88 #undef PD 89 90 JNIEXPORT void JNICALL 91 Java_java_lang_Class_registerNatives(JNIEnv *env, jclass cls) 92 { 93 methods[1].fnPtr = (void *)(*env)->GetSuperclass; |