Fix container and string leaks
Some functions return a new instance of such containers, but instead we made a copy of them, without taking ownership of the original created by the function. Now we use a specific constructor taking ownership on the godot_* struct.
This commit is contained in:
@@ -31,6 +31,11 @@ class Array;
|
||||
class Variant {
|
||||
godot_variant _godot_variant;
|
||||
|
||||
friend class Array;
|
||||
inline explicit Variant(godot_variant v) {
|
||||
_godot_variant = v;
|
||||
}
|
||||
|
||||
public:
|
||||
enum Type {
|
||||
|
||||
@@ -226,7 +231,9 @@ public:
|
||||
operator NodePath() const;
|
||||
operator RID() const;
|
||||
operator godot_object *() const;
|
||||
template <typename T> operator T*() const { return static_cast<T*>(T::___get_from_variant(*this)); }
|
||||
|
||||
template <typename T>
|
||||
operator T *() const { return static_cast<T *>(T::___get_from_variant(*this)); }
|
||||
|
||||
operator Dictionary() const;
|
||||
operator Array() const;
|
||||
|
||||
Reference in New Issue
Block a user