jboolean Java_java_lang_Class_isAssignableFrom(Env* env, Class* thiz, Class* that) { if (!that) { rvmThrowNullPointerException(env); return FALSE; } return rvmIsAssignableFrom(env, that, thiz); }
static inline jboolean checkNull(Env* env, Object* o) { if (!o) { rvmThrowNullPointerException(env); return FALSE; } return TRUE; }
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; }
jboolean Java_java_lang_Thread_internalHoldsLock(Env* env, Class* cls, Object* obj) { if (!obj) { rvmThrowNullPointerException(env); return FALSE; } rvmLockThreadsList(); jboolean result = rvmHoldsLock(env, env->currentThread, obj); rvmUnlockThreadsList(); return result; }
jboolean rvmUnboxChar(Env* env, Object* arg, jvalue* value) { if (!arg) { rvmThrowNullPointerException(env); return FALSE; } if (arg->clazz != java_lang_Character) { rvmThrowClassCastException(env, java_lang_Character, arg->clazz); return FALSE; } value->c = ((Character*) arg)->value; return TRUE; }
jboolean rvmUnboxByte(Env* env, Object* arg, jvalue* value) { if (!arg) { rvmThrowNullPointerException(env); return FALSE; } if (arg->clazz != java_lang_Byte) { rvmThrowClassCastException(env, java_lang_Byte, arg->clazz); return FALSE; } value->b = ((Byte*) arg)->value; return TRUE; }
jboolean rvmUnboxFloat(Env* env, Object* arg, jvalue* value) { if (!arg) { rvmThrowNullPointerException(env); return FALSE; } if (arg->clazz != java_lang_Float) { if (rvmUnboxLong(env, arg, value)) { value->f = value->j; return TRUE; } else { rvmExceptionClear(env); } rvmThrowClassCastException(env, java_lang_Float, arg->clazz); return FALSE; } value->f = ((Float*) arg)->value; return TRUE; }
jboolean rvmUnboxInt(Env* env, Object* arg, jvalue* value) { if (!arg) { rvmThrowNullPointerException(env); return FALSE; } if (arg->clazz != java_lang_Integer) { if (rvmUnboxShort(env, arg, value)) { value->i = value->s; return TRUE; } else { rvmExceptionClear(env); } rvmThrowClassCastException(env, java_lang_Integer, arg->clazz); return FALSE; } value->i = ((Integer*) arg)->value; return TRUE; }
void _bcThrowNullPointerException(Env* env) { ENTER; rvmThrowNullPointerException(env); LEAVEV; }