diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/variant_call.cpp | 2 | ||||
-rw-r--r-- | core/variant_op.cpp | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/core/variant_call.cpp b/core/variant_call.cpp index c6b498ff28..a6b931127a 100644 --- a/core/variant_call.cpp +++ b/core/variant_call.cpp @@ -426,6 +426,7 @@ static void _call_##m_type##_##m_method(Variant& r_ret,Variant& p_self,const Var VCALL_LOCALMEM0(Array,sort); VCALL_LOCALMEM2(Array,sort_custom); VCALL_LOCALMEM0(Array,invert); + VCALL_LOCALMEM0R(Array,is_shared); static void _call_ByteArray_get_string_from_ascii(Variant& r_ret,Variant& p_self,const Variant** p_args) { @@ -1378,6 +1379,7 @@ _VariantCall::addfunc(Variant::m_vtype,Variant::m_ret,_SCS(#m_method),VCALL(m_cl ADDFUNC0(ARRAY,NIL,Array,sort,varray()); ADDFUNC2(ARRAY,NIL,Array,sort_custom,OBJECT,"obj",STRING,"func",varray()); ADDFUNC0(ARRAY,NIL,Array,invert,varray()); + ADDFUNC0(ARRAY,BOOL,Array,is_shared,varray()); ADDFUNC0(RAW_ARRAY,INT,ByteArray,size,varray()); ADDFUNC2(RAW_ARRAY,NIL,ByteArray,set,INT,"idx",INT,"byte",varray()); diff --git a/core/variant_op.cpp b/core/variant_op.cpp index 87d9738b06..ba8000b92d 100644 --- a/core/variant_op.cpp +++ b/core/variant_op.cpp @@ -471,7 +471,7 @@ void Variant::evaluate(const Operator& p_op, const Variant& p_a, const Variant& } const Array &array_a=*reinterpret_cast<const Array *>(p_a._data._mem); const Array &array_b=*reinterpret_cast<const Array *>(p_b._data._mem); - Array sum; + Array sum(array_a.is_shared() || array_b.is_shared()); int asize=array_a.size(); int bsize=array_b.size(); sum.resize(asize+bsize); |