Beispiel #1
0
jboolean Java_java_lang_Class_isAssignableFrom(Env* env, Class* thiz, Class* that) {
    if (!that) {
        rvmThrowNullPointerException(env);
        return FALSE;
    }
    return rvmIsAssignableFrom(env, that, thiz);
}
Beispiel #2
0
static inline jboolean checkNull(Env* env, Object* o) {
    if (!o) {
        rvmThrowNullPointerException(env);
        return FALSE;
    }
    return TRUE;
}
Beispiel #3
0
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;
}
Beispiel #4
0
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;
}
Beispiel #5
0
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;
}
Beispiel #6
0
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;
}
Beispiel #7
0
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;
}
Beispiel #8
0
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;
}
Beispiel #9
0
void _bcThrowNullPointerException(Env* env) {
    ENTER;
    rvmThrowNullPointerException(env);
    LEAVEV;
}