nn_getError and fix nn_ComputerState

This commit is contained in:
2026-07-05 11:00:55 -03:00
parent fc6fbc8989
commit 82adc97f6b
3 changed files with 15 additions and 3 deletions

View File

@@ -13,7 +13,7 @@
return obj;\ return obj;\
} }
#define CARBON_MAP_TO_NN_COMPUTERSTATE(enumcase) case enumcase: {\ #define CARBON_MAP_TO_NN_COMPUTERSTATE(enumcase) case enumcase: {\
jfieldID id = env->GetFieldID(clazz, #enumcase, "Lorg/neoflock/NeoNucleus/nn_ComputerState;");\ jfieldID id = env->GetStaticFieldID(clazz, #enumcase, "Lorg/neoflock/NeoNucleus/nn_ComputerState;");\
CARBON_JNI_EXCEPTION_CHECK()\ CARBON_JNI_EXCEPTION_CHECK()\
return env->GetStaticObjectField(clazz, id);\ return env->GetStaticObjectField(clazz, id);\
} }
@@ -105,7 +105,10 @@ nn_Exit Carbon::Map::From_nn_Exit(JNIEnv* env, jobject a) {
return (nn_Exit) value; // this should be fine as long as the header and java side don't desync return (nn_Exit) value; // this should be fine as long as the header and java side don't desync
} }
jobject Carbon::Map::To_nn_ComputerState(JNIEnv* env, nn_ComputerState a) { jobject Carbon::Map::To_nn_ComputerState(JNIEnv* env, nn_ComputerState a) {
jclass clazz = env->FindClass(CARBON_CLASSPATH("nn_ComputerState")); jclass clazz = env->FindClass(CARBON_CLASSPATH(nn_ComputerState));
if (clazz == NULL) { // probably an exception here
return NULL;
}
switch (a) { switch (a) {
CARBON_MAP_TO_NN_COMPUTERSTATE(NN_RUNNING) CARBON_MAP_TO_NN_COMPUTERSTATE(NN_RUNNING)
CARBON_MAP_TO_NN_COMPUTERSTATE(NN_BOOTUP) CARBON_MAP_TO_NN_COMPUTERSTATE(NN_BOOTUP)

View File

@@ -246,3 +246,12 @@ JNIEXPORT jobject JNICALL Java_org_neoflock_NeoNucleus_NativeBindings_nn_1tickSy
NULLPTR_CHECK(nnPC, nn_Computer); NULLPTR_CHECK(nnPC, nn_Computer);
return Carbon::Map::To_nn_Exit(env, nn_tickSynchronized(nnPC)); return Carbon::Map::To_nn_Exit(env, nn_tickSynchronized(nnPC));
} }
JNIEXPORT jstring JNICALL Java_org_neoflock_NeoNucleus_NativeBindings_nn_1getError
(JNIEnv * env, jclass, jobject computer) {
nn_Computer* nnPC = (nn_Computer*) Carbon::PointerBacked::GetPointer(env, computer);
NULLPTR_CHECK(nnPC, nn_Computer);
const char* str = nn_getError(nnPC);
jstring jstr = env->NewStringUTF(str);
return jstr;
}