-Concatenating arrays keeps the shared property if any of the arrays is shared. Fixes #1646
This commit is contained in:
parent
b36e41cb71
commit
22997294fa
|
@ -132,7 +132,7 @@ public:
|
|||
frame->add_child( button );
|
||||
|
||||
|
||||
|
||||
#if 0
|
||||
Sprite *tf = memnew( Sprite );
|
||||
frame->add_child(tf);
|
||||
Image img;
|
||||
|
@ -147,7 +147,7 @@ public:
|
|||
tf->set_pos(Point2(50,50));
|
||||
//tf->set_scale(Point2(0.3,0.3));
|
||||
|
||||
#if 0
|
||||
|
||||
return;
|
||||
#endif
|
||||
|
||||
|
|
|
@ -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());
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -1075,6 +1075,7 @@ GDParser::Node* GDParser::_reduce_expression(Node *p_node,bool p_to_const) {
|
|||
|
||||
ConstantNode *cn = alloc_node<ConstantNode>();
|
||||
Array arr(!p_to_const);
|
||||
//print_line("mk array "+itos(!p_to_const));
|
||||
arr.resize(an->elements.size());
|
||||
for(int i=0;i<an->elements.size();i++) {
|
||||
ConstantNode *acn = static_cast<ConstantNode*>(an->elements[i]);
|
||||
|
|
Loading…
Reference in New Issue