From 88df025aa0ab92ed176f91dd835c004fa26f0ed0 Mon Sep 17 00:00:00 2001 From: David Snopek Date: Tue, 7 May 2024 12:54:35 -0500 Subject: Clean up instance bindings for engine singletons to prevent crash --- test/src/example.cpp | 7 +++++++ test/src/example.h | 2 ++ 2 files changed, 9 insertions(+) (limited to 'test/src') diff --git a/test/src/example.cpp b/test/src/example.cpp index 3ec8bca..78d7062 100644 --- a/test/src/example.cpp +++ b/test/src/example.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include using namespace godot; @@ -239,6 +240,8 @@ void Example::_bind_methods() { GDVIRTUAL_BIND(_do_something_virtual, "name", "value"); ClassDB::bind_method(D_METHOD("test_virtual_implemented_in_script"), &Example::test_virtual_implemented_in_script); + ClassDB::bind_method(D_METHOD("test_use_engine_singleton"), &Example::test_use_engine_singleton); + ClassDB::bind_static_method("Example", D_METHOD("test_static", "a", "b"), &Example::test_static); ClassDB::bind_static_method("Example", D_METHOD("test_static2"), &Example::test_static2); @@ -671,6 +674,10 @@ String Example::test_virtual_implemented_in_script(const String &p_name, int p_v return "Unimplemented"; } +String Example::test_use_engine_singleton() const { + return OS::get_singleton()->get_name(); +} + void ExampleRuntime::_bind_methods() { ClassDB::bind_method(D_METHOD("set_prop_value", "value"), &ExampleRuntime::set_prop_value); ClassDB::bind_method(D_METHOD("get_prop_value"), &ExampleRuntime::get_prop_value); diff --git a/test/src/example.h b/test/src/example.h index 0ad9493..1af4e5f 100644 --- a/test/src/example.h +++ b/test/src/example.h @@ -186,6 +186,8 @@ public: GDVIRTUAL2R(String, _do_something_virtual, String, int); String test_virtual_implemented_in_script(const String &p_name, int p_value); + + String test_use_engine_singleton() const; }; VARIANT_ENUM_CAST(Example::Constants); -- cgit v1.2.3