diff options
author | Rémi Verschelde <remi@verschelde.fr> | 2021-06-07 20:11:41 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-07 20:11:41 +0200 |
commit | 6e9a4c268fac7b20dda29841e7c37a236a2c4ffa (patch) | |
tree | 1842a222c5da13c913521b8e858a582184890848 /core/object/reference.cpp | |
parent | 6f8d5cff66416993856bdb01c83b999b84425fb0 (diff) | |
parent | 98a81fe8aadb93c7a80274c86856b5bbde45b9b5 (diff) | |
download | redot-engine-6e9a4c268fac7b20dda29841e7c37a236a2c4ffa.tar.gz |
Merge pull request #49318 from reduz/native-extension
Add API for registering native extensions
Diffstat (limited to 'core/object/reference.cpp')
-rw-r--r-- | core/object/reference.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/core/object/reference.cpp b/core/object/reference.cpp index 22e4e8a336..086b761e95 100644 --- a/core/object/reference.cpp +++ b/core/object/reference.cpp @@ -62,6 +62,9 @@ bool Reference::reference() { if (get_script_instance()) { get_script_instance()->refcount_incremented(); } + if (_get_extension() && _get_extension()->reference) { + _get_extension()->reference(_get_extension_instance()); + } if (instance_binding_count.get() > 0 && !ScriptServer::are_languages_finished()) { for (int i = 0; i < MAX_SCRIPT_INSTANCE_BINDINGS; i++) { if (_script_instance_bindings[i]) { @@ -83,6 +86,9 @@ bool Reference::unreference() { bool script_ret = get_script_instance()->refcount_decremented(); die = die && script_ret; } + if (_get_extension() && _get_extension()->unreference) { + _get_extension()->unreference(_get_extension_instance()); + } if (instance_binding_count.get() > 0 && !ScriptServer::are_languages_finished()) { for (int i = 0; i < MAX_SCRIPT_INSTANCE_BINDINGS; i++) { if (_script_instance_bindings[i]) { |