Class* Java_java_lang_VMClassLoader_findClassInClasspathForLoader(Env* env, Class* cls, ClassLoader* cl, Object* name) { char* classNameUTF = toBinaryName(env, name); if (!classNameUTF) return NULL; Class* clazz = rvmFindClassInClasspathForLoader(env, classNameUTF, cl); if (!clazz) return NULL; return clazz; }
Class* Java_java_lang_Class_classForName(Env* env, Class* cls, Object* className, jboolean initializeBoolean, ClassLoader* classLoader) { if (!className) { rvmThrowNullPointerException(env); return NULL; } char* classNameUTF = toBinaryName(env, className); if (!classNameUTF) return NULL; Class* clazz = rvmFindClassUsingLoader(env, classNameUTF, classLoader); if (!clazz) { char* p = classNameUTF; while (*p != '\0') { if (*p == '/') *p = '.'; p++; } WARNF("Class.forName() failed to load '%s'. " "Use the -forcelinkclasses command line option " "or add <forceLinkClasses><pattern>%s</pattern></forceLinkClasses> " "to your robovm.xml file to link it in.", classNameUTF, classNameUTF); return NULL; } if (initializeBoolean) { rvmInitialize(env, clazz); if (rvmExceptionCheck(env)) return NULL; } return clazz; }
Class* Java_java_lang_VMClassLoader_findClassInClasspathForLoader(Env* env, Class* cls, Object* cl, Object* name) { char* classNameUTF = toBinaryName(env, name); if (!classNameUTF) return NULL; Class* clazz = rvmFindClassInClasspathForLoader(env, classNameUTF, cl); if (!clazz) { char* p = classNameUTF; while (*p != '\0') { if (*p == '/') *p = '.'; p++; } // TODO: Should we use WARNF? TRACEF("VMClassLoader.findClassInClasspathForLoader() failed to load '%s'. " "Use the -forcelinkclasses command line option " "or add <forceLinkClasses><pattern>%s</pattern></forceLinkClasses> " "to your bugvm.xml file to link it in.", classNameUTF, classNameUTF); } return clazz; }
Class* Java_java_lang_VMClassLoader_findLoadedClass(Env* env, Class* cls, ClassLoader* cl, Object* name) { char* classNameUTF = toBinaryName(env, name); if (!classNameUTF) return NULL; return rvmFindLoadedClass(env, classNameUTF, cl); }