diff options
Diffstat (limited to 'modules/gdnative')
-rw-r--r-- | modules/gdnative/gdnative.cpp | 10 | ||||
-rw-r--r-- | modules/gdnative/gdnative.h | 1 | ||||
-rw-r--r-- | modules/gdnative/godot/node_path.cpp | 2 | ||||
-rw-r--r-- | modules/gdnative/godot/variant.cpp | 1 |
4 files changed, 9 insertions, 5 deletions
diff --git a/modules/gdnative/gdnative.cpp b/modules/gdnative/gdnative.cpp index 158f7fd94d..07dba921b1 100644 --- a/modules/gdnative/gdnative.cpp +++ b/modules/gdnative/gdnative.cpp @@ -155,7 +155,6 @@ String GDNativeLibrary::get_active_library_path() const { } GDNative::GDNative() { - initialized = false; native_handle = NULL; } @@ -219,6 +218,9 @@ bool GDNative::initialize() { library_init); if (err || !library_init) { + OS::get_singleton()->close_dynamic_library(native_handle); + native_handle = NULL; + ERR_PRINT("Failed to obtain godot_gdnative_init symbol"); return false; } @@ -272,7 +274,11 @@ bool GDNative::terminate() { OS::get_singleton()->close_dynamic_library(native_handle); native_handle = NULL; - return false; + return true; +} + +bool GDNative::is_initialized() { + return (native_handle != NULL); } void GDNativeCallRegistry::register_native_call_type(StringName p_call_type, native_call_cb p_callback) { diff --git a/modules/gdnative/gdnative.h b/modules/gdnative/gdnative.h index f02741f4e3..b03866f432 100644 --- a/modules/gdnative/gdnative.h +++ b/modules/gdnative/gdnative.h @@ -117,7 +117,6 @@ class GDNative : public Reference { GDCLASS(GDNative, Reference) Ref<GDNativeLibrary> library; - bool initialized; // TODO(karroffel): different platforms? WASM???? void *native_handle; diff --git a/modules/gdnative/godot/node_path.cpp b/modules/gdnative/godot/node_path.cpp index e718a9e55f..f4179361be 100644 --- a/modules/gdnative/godot/node_path.cpp +++ b/modules/gdnative/godot/node_path.cpp @@ -29,7 +29,7 @@ /*************************************************************************/ #include <godot/node_path.h> -#include "core/path_db.h" +#include "core/node_path.h" #include "core/variant.h" #ifdef __cplusplus diff --git a/modules/gdnative/godot/variant.cpp b/modules/gdnative/godot/variant.cpp index 506614583c..d814ef913c 100644 --- a/modules/gdnative/godot/variant.cpp +++ b/modules/gdnative/godot/variant.cpp @@ -433,7 +433,6 @@ godot_variant GDAPI godot_variant_call(godot_variant *p_self, const godot_string Variant *dest = (Variant *)&raw_dest; Variant::CallError error; memnew_placement_custom(dest, Variant, Variant(self->call(*method, args, p_argcount, error))); - *dest = self->call(StringName(*method), args, p_argcount, r_error); if (r_error) { r_error->error = (godot_variant_call_error_error)error.error; r_error->argument = error.argument; |