summaryrefslogtreecommitdiffstats
path: root/modules/mono/csharp_script.h
diff options
context:
space:
mode:
authorIgnacio Etcheverry <ignalfonsore@gmail.com>2020-01-13 21:00:07 +0100
committerIgnacio Etcheverry <ignalfonsore@gmail.com>2020-01-13 21:00:07 +0100
commita6a5ef0fd690123d8f646bca47f7ae6e2ad3bbfe (patch)
treec57f8e5f10dd4f46fce14546024887cbec441d33 /modules/mono/csharp_script.h
parentea737db43cba15e5d57442a647e9abcb91ed4ea7 (diff)
downloadredot-engine-a6a5ef0fd690123d8f646bca47f7ae6e2ad3bbfe.tar.gz
Mono/C#: Add error checks to detect possible Reference leaks
Diffstat (limited to 'modules/mono/csharp_script.h')
-rw-r--r--modules/mono/csharp_script.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/modules/mono/csharp_script.h b/modules/mono/csharp_script.h
index 027f429125..30f56e00bd 100644
--- a/modules/mono/csharp_script.h
+++ b/modules/mono/csharp_script.h
@@ -307,6 +307,11 @@ class CSharpLanguage : public ScriptLanguage {
Map<Object *, CSharpScriptBinding> script_bindings;
+#ifdef DEBUG_ENABLED
+ // List of unsafely referenced objects
+ List<ObjectID> unsafely_referenced_objects;
+#endif
+
struct StringNameCache {
StringName _signal_callback;
@@ -458,6 +463,9 @@ public:
Vector<StackInfo> stack_trace_get_info(MonoObject *p_stack_trace);
#endif
+ void post_unsafe_reference(Object *p_obj);
+ void pre_unsafe_unreference(Object *p_obj);
+
CSharpLanguage();
~CSharpLanguage();
};