diff options
| author | Juan Linietsky | 2016-06-21 19:34:45 -0300 |
|---|---|---|
| committer | Juan Linietsky | 2016-06-21 19:36:22 -0300 |
| commit | d57b09e47bb229b164ac34a408207882635b541b (patch) | |
| tree | 2ffb77e6bf83c367333fb19ff358ce0a1785fbaf /core/reference.cpp | |
| parent | 3b5b893a0ea489585ba98361911fa210b7864a43 (diff) | |
| download | godot-d57b09e47bb229b164ac34a408207882635b541b.tar.gz godot-d57b09e47bb229b164ac34a408207882635b541b.tar.zst godot-d57b09e47bb229b164ac34a408207882635b541b.zip | |
Diffstat (limited to 'core/reference.cpp')
| -rw-r--r-- | core/reference.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/core/reference.cpp b/core/reference.cpp index 90bafd0a9..34f36a573 100644 --- a/core/reference.cpp +++ b/core/reference.cpp @@ -27,7 +27,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "reference.h" - +#include "script_language.h" bool Reference::init_ref() { @@ -66,11 +66,21 @@ int Reference::reference_get_count() const { void Reference::reference(){ refcount.ref(); + if (get_script_instance()) { + get_script_instance()->refcount_incremented(); + } } bool Reference::unreference(){ - return refcount.unref(); + bool die = refcount.unref(); + + if (get_script_instance()) { + die = die && get_script_instance()->refcount_decremented(); + } + + return die; + } Reference::Reference() { |
