summaryrefslogtreecommitdiffstats
path: root/include/core
diff options
context:
space:
mode:
authorsheepandshepherd <sheepandshepherd@hotmail.com>2019-12-04 21:12:59 +0100
committersheepandshepherd <sheepandshepherd@hotmail.com>2020-01-31 00:08:02 +0100
commit66c671b59dece97d523478cae7c602de6d423aa4 (patch)
treed2206102a8d43efeef21f3fe740ce3e36d4dbb6a /include/core
parentaba8766618c6aa40c6f7b40b513e8e47cfa807f4 (diff)
downloadredot-cpp-66c671b59dece97d523478cae7c602de6d423aa4.tar.gz
Add C conversion constructors to fix leak of default-constructed empty arrays
Diffstat (limited to 'include/core')
-rw-r--r--include/core/Array.hpp5
-rw-r--r--include/core/Dictionary.hpp5
2 files changed, 10 insertions, 0 deletions
diff --git a/include/core/Array.hpp b/include/core/Array.hpp
index d766c54..3d13914 100644
--- a/include/core/Array.hpp
+++ b/include/core/Array.hpp
@@ -57,6 +57,11 @@ class Object;
class Array {
godot_array _godot_array;
+ friend class Variant;
+ inline explicit Array(const godot_array &other) {
+ _godot_array = other;
+ }
+
public:
Array();
Array(const Array &other);
diff --git a/include/core/Dictionary.hpp b/include/core/Dictionary.hpp
index ec97602..7f40adc 100644
--- a/include/core/Dictionary.hpp
+++ b/include/core/Dictionary.hpp
@@ -12,6 +12,11 @@ namespace godot {
class Dictionary {
godot_dictionary _godot_dictionary;
+ friend Variant::operator Dictionary() const;
+ inline explicit Dictionary(const godot_dictionary &other) {
+ _godot_dictionary = other;
+ }
+
public:
Dictionary();
Dictionary(const Dictionary &other);