From 82adc97f6b9f28d9d46764945556854eb44dcc3a Mon Sep 17 00:00:00 2001 From: nicejs-is-cool Date: Sun, 5 Jul 2026 11:00:55 -0300 Subject: [PATCH] nn_getError and fix nn_ComputerState --- NeoNucleus | 2 +- src/native/carbon.cpp | 7 +++++-- src/native/main.cpp | 9 +++++++++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/NeoNucleus b/NeoNucleus index 7c086f6..5f06a56 160000 --- a/NeoNucleus +++ b/NeoNucleus @@ -1 +1 @@ -Subproject commit 7c086f6b8eaae7a9009f2aab02efc070b99456ef +Subproject commit 5f06a5659ca8bf2ece025cf27f195d1044ee405a diff --git a/src/native/carbon.cpp b/src/native/carbon.cpp index 30f828c..aa7be91 100644 --- a/src/native/carbon.cpp +++ b/src/native/carbon.cpp @@ -13,7 +13,7 @@ return obj;\ } #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()\ 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 } 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) { CARBON_MAP_TO_NN_COMPUTERSTATE(NN_RUNNING) CARBON_MAP_TO_NN_COMPUTERSTATE(NN_BOOTUP) diff --git a/src/native/main.cpp b/src/native/main.cpp index c4251f2..ddc06f6 100644 --- a/src/native/main.cpp +++ b/src/native/main.cpp @@ -246,3 +246,12 @@ JNIEXPORT jobject JNICALL Java_org_neoflock_NeoNucleus_NativeBindings_nn_1tickSy NULLPTR_CHECK(nnPC, nn_Computer); 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; +} \ No newline at end of file