Diff for /parser3/src/classes/array.C between versions 1.26 and 1.28

version 1.26, 2024/10/26 18:53:36 version 1.28, 2024/10/27 13:22:13
Line 608  static void _count(Request& r, MethodPar Line 608  static void _count(Request& r, MethodPar
         r.write(*new VInt(array.used()));          r.write(*new VInt(array.used()));
 }  }
   
 static void _create_or_append(Request& r, MethodParams& params) {  static void _create_or_append_or_push(Request& r, MethodParams& params) {
         ArrayValue& array=GET_SELF(r, VArray).array();          ArrayValue& array=GET_SELF(r, VArray).array();
   
         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) {
Line 651  static void _remove(Request& r, MethodPa Line 652  static void _remove(Request& r, MethodPa
         array.invalidate();          array.invalidate();
 }  }
   
   static void _pop(Request& r, MethodParams& params) {
           ArrayValue& array=GET_SELF(r, VArray).array();
           Value *result=array.pop();
           if(result){
                   r.write(*result);
                   array.change_used(-1);
           } else {
                   r.write(*VVoid::get());
           }
   }
   
 static void _contains(Request& r, MethodParams& params) {  static void _contains(Request& r, MethodParams& params) {
         VArray& self=GET_SELF(r, VArray);          VArray& self=GET_SELF(r, VArray);
         bool result=self.contains(VArray::index(params.as_int(0, PARAM_INDEX, r)));          bool result=self.contains(VArray::index(params.as_int(0, PARAM_INDEX, r)));
Line 1065  MArray::MArray(): Methoded(VARRAY_TYPE) Line 1077  MArray::MArray(): Methoded(VARRAY_TYPE)
         // ^array.join[join_from[;options]]          // ^array.join[join_from[;options]]
         add_native_method("join", Method::CT_DYNAMIC, _join, 1, 2);          add_native_method("join", Method::CT_DYNAMIC, _join, 1, 2);
   
         // ^array::create[value;value]          // ^array::create[value[;value...]]
         add_native_method("create", Method::CT_DYNAMIC, _create_or_append, 0, 10000);          add_native_method("create", Method::CT_DYNAMIC, _create_or_append_or_push, 0, 10000);
         // ^array.append[value;value]          // ^array.append[value[;value...]]
         add_native_method("append", Method::CT_DYNAMIC, _create_or_append, 1, 10000);          add_native_method("append", Method::CT_DYNAMIC, _create_or_append_or_push, 1, 10000);
         // ^array.insert[index;value...]          // ^array.push[value[;value...]]
           add_native_method("push", Method::CT_DYNAMIC, _create_or_append_or_push, 1, 10000);
           // ^array.insert[index;value[;value...]]
         add_native_method("insert", Method::CT_DYNAMIC, _insert, 2, 10000);          add_native_method("insert", Method::CT_DYNAMIC, _insert, 2, 10000);
   
         // ^array.left(n)          // ^array.left(n)
Line 1084  MArray::MArray(): Methoded(VARRAY_TYPE) Line 1098  MArray::MArray(): Methoded(VARRAY_TYPE)
         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[]
           add_native_method("pop", Method::CT_DYNAMIC, _pop, 0, 0);
   
         // ^array.contains[index]          // ^array.contains[index]
         add_native_method("contains", Method::CT_DYNAMIC, _contains, 1, 1);          add_native_method("contains", Method::CT_DYNAMIC, _contains, 1, 1);

Removed from v.1.26  
changed lines
  Added in v.1.28


E-mail: