@@ -44,10 +44,15 @@ class TypedArray : public Array {
44
44
_ref (p_array);
45
45
}
46
46
_FORCE_INLINE_ TypedArray (const Variant &p_variant) :
47
- Array(p_variant. operator Array (), Variant::OBJECT, T::get_class_static(), Variant( )) {
47
+ TypedArray( Array(p_variant )) {
48
48
}
49
- _FORCE_INLINE_ TypedArray (const Array &p_array) :
50
- Array(p_array, Variant::OBJECT, T::get_class_static(), Variant()) {
49
+ _FORCE_INLINE_ TypedArray (const Array &p_array) {
50
+ set_typed (Variant::OBJECT, T::get_class_static (), Variant ());
51
+ if (is_same_typed (p_array)) {
52
+ _ref (p_array);
53
+ } else {
54
+ assign (p_array);
55
+ }
51
56
}
52
57
_FORCE_INLINE_ TypedArray () {
53
58
set_typed (Variant::OBJECT, T::get_class_static (), Variant ());
@@ -65,10 +70,15 @@ class TypedArray : public Array {
65
70
_ref (p_array); \
66
71
} \
67
72
_FORCE_INLINE_ TypedArray (const Variant &p_variant) : \
68
- Array(p_variant. operator Array (), m_variant_type, StringName(), Variant()) { \
73
+ TypedArray( Array(p_variant)) { \
69
74
} \
70
- _FORCE_INLINE_ TypedArray (const Array &p_array) : \
71
- Array(p_array, m_variant_type, StringName(), Variant()) { \
75
+ _FORCE_INLINE_ TypedArray (const Array &p_array) { \
76
+ set_typed (m_variant_type, StringName (), Variant ()); \
77
+ if (is_same_typed (p_array)) { \
78
+ _ref (p_array); \
79
+ } else { \
80
+ assign (p_array); \
81
+ } \
72
82
} \
73
83
_FORCE_INLINE_ TypedArray () { \
74
84
set_typed (m_variant_type, StringName (), Variant ()); \
0 commit comments