|
|
| version 1.27, 2024/10/27 12:24:49 | version 1.29, 2024/10/27 13:53:08 |
|---|---|
| Line 614 static void _create_or_append_or_push(Re | Line 614 static void _create_or_append_or_push(Re |
| int count=params.count(); | int count=params.count(); |
| if(array.count()){ | if(array.count()){ |
| for(int i=0; i<count; i++) | for(int i=0; i<count; i++){ |
| array+=&r.process(params[i]); | array+=&r.process(params[i]); |
| array.invalidate(); | array.change_used(+1); // after each element, since an exception can occur |
| } | |
| } else { | } else { |
| for(int i=0; i<count; i++) | for(int i=0; i<count; i++) |
| array+=&r.process(params[i]); | array+=&r.process(params[i]); |
| Line 632 static void _insert(Request& r, MethodPa | Line 633 static void _insert(Request& r, MethodPa |
| for(int i=1; i<count; i++){ | for(int i=1; i<count; i++){ |
| array.insert(index++, &r.process(params[i])); | array.insert(index++, &r.process(params[i])); |
| array.change_used(+1); // after each element, since an exception can occur | |
| } | } |
| array.invalidate(); | |
| } | } |
| static void _delete(Request& r, MethodParams& params) { | static void _delete(Request& r, MethodParams& params) { |
| ArrayValue& array=GET_SELF(r, VArray).array(); | ArrayValue& array=GET_SELF(r, VArray).array(); |
| if(params.count()>0) | if(params.count()>0) { |
| array.clear(VArray::index(params.as_int(0, PARAM_INDEX, r))); | if(params[0].is_string()) { |
| else | array.clear(VArray::index(*params[0].get_string())); |
| } else { | |
| array.clear(VArray::index(params.as_int(0, PARAM_INDEX, r))); | |
| } | |
| } else | |
| array.clear(); | array.clear(); |
| array.invalidate(); | array.invalidate(); |
| } | } |
| Line 656 static void _pop(Request& r, MethodParam | Line 661 static void _pop(Request& r, MethodParam |
| Value *result=array.pop(); | Value *result=array.pop(); |
| if(result){ | if(result){ |
| r.write(*result); | r.write(*result); |
| array.change_used(-1); | |
| } else { | } else { |
| r.write(*VVoid::get()); | r.write(*VVoid::get()); |
| } | } |
| array.invalidate(); | |
| } | } |
| static void _contains(Request& r, MethodParams& params) { | static void _contains(Request& r, MethodParams& params) { |
| Line 1093 MArray::MArray(): Methoded(VARRAY_TYPE) | Line 1098 MArray::MArray(): Methoded(VARRAY_TYPE) |
| // ^array.mid(p;n) | // ^array.mid(p;n) |
| add_native_method("mid", Method::CT_DYNAMIC, _mid, 1, 2); | add_native_method("mid", Method::CT_DYNAMIC, _mid, 1, 2); |
| // ^array.delete[index] | // ^array.delete(index) or ^array.delete[index] |
| add_native_method("delete", Method::CT_DYNAMIC, _delete, 0, 1); | add_native_method("delete", Method::CT_DYNAMIC, _delete, 0, 1); |
| // ^array.remove[index] | // ^array.remove(index) |
| add_native_method("remove", Method::CT_DYNAMIC, _remove, 1, 1); | add_native_method("remove", Method::CT_DYNAMIC, _remove, 1, 1); |
| // ^array.pop[] | // ^array.pop[] |
| add_native_method("pop", Method::CT_DYNAMIC, _pop, 0, 0); | add_native_method("pop", Method::CT_DYNAMIC, _pop, 0, 0); |