diff options
author | Marc <marc.gilleron@gmail.com> | 2021-01-31 20:15:44 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-31 20:15:44 +0000 |
commit | e8de1fa2a5e2974c273fde35bc5ecac375ae98ec (patch) | |
tree | 286a8e2e25c18fe11f346835b3021afae2e9b77f /src/core/Dictionary.cpp | |
parent | 05ba977cc60653952b73dc03498ebc7a93cef120 (diff) | |
parent | b400dba87534640eeddbcdb6b319335a6a7639d8 (diff) | |
download | redot-cpp-e8de1fa2a5e2974c273fde35bc5ecac375ae98ec.tar.gz |
Merge pull request #490 from Zylann/container_leaks
Fix container and string leaks
Diffstat (limited to 'src/core/Dictionary.cpp')
-rw-r--r-- | src/core/Dictionary.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/core/Dictionary.cpp b/src/core/Dictionary.cpp index 17f16a4..9c5be43 100644 --- a/src/core/Dictionary.cpp +++ b/src/core/Dictionary.cpp @@ -45,16 +45,18 @@ uint32_t Dictionary::hash() const { Array Dictionary::keys() const { godot_array a = godot::api->godot_dictionary_keys(&_godot_dictionary); - return *(Array *)&a; + return Array(a); } Variant &Dictionary::operator[](const Variant &key) { - return *(Variant *)godot::api->godot_dictionary_operator_index(&_godot_dictionary, (godot_variant *)&key); + godot_variant *v = godot::api->godot_dictionary_operator_index(&_godot_dictionary, (godot_variant *)&key); + return *reinterpret_cast<Variant *>(v); } const Variant &Dictionary::operator[](const Variant &key) const { // oops I did it again - return *(Variant *)godot::api->godot_dictionary_operator_index((godot_dictionary *)&_godot_dictionary, (godot_variant *)&key); + godot_variant *v = godot::api->godot_dictionary_operator_index((godot_dictionary *)&_godot_dictionary, (godot_variant *)&key); + return *reinterpret_cast<Variant *>(v); } int Dictionary::size() const { @@ -63,12 +65,12 @@ int Dictionary::size() const { String Dictionary::to_json() const { godot_string s = godot::api->godot_dictionary_to_json(&_godot_dictionary); - return *(String *)&s; + return String(s); } Array Dictionary::values() const { godot_array a = godot::api->godot_dictionary_values(&_godot_dictionary); - return *(Array *)&a; + return Array(a); } Dictionary::~Dictionary() { |