Diff for /parser3/src/classes/array.C between versions 1.20 and 1.22

version 1.20, 2024/10/20 14:35:05 version 1.22, 2024/10/23 16:41:11
Line 904  static void _at(Request& r, MethodParams Line 904  static void _at(Request& r, MethodParams
         }          }
   
         if(count && pos >= 0 && (size_t)pos < count){          if(count && pos >= 0 && (size_t)pos < count){
                 switch(result_type) {                  if(count == array.count()){
                         case AtResultTypeKey:                          switch(result_type) {
                                 {                                  case AtResultTypeKey:
                                         for(ArrayValue::Iterator i(array); i; i.next() ){                                          r.write(*new VString(*new String(pa_uitoa(pos), String::L_TAINTED)));
                                                 if(i.value() && !(pos--)){                                          break;
                                   case AtResultTypeValue:
                                           r.write(*array[pos]);
                                           break;
                                   case AtResultTypeHash:
                                           r.write(SingleElementHash(pa_uitoa(pos), array[pos]));
                                           break;
                           }
                   } else {
                           for(ArrayValue::Iterator i(array); i; i.next() ){
                                   if(i.value() && !(pos--)){
                                           switch(result_type) {
                                                   case AtResultTypeKey:
                                                         r.write(*new VString(*new String(i.key(), String::L_TAINTED)));                                                          r.write(*new VString(*new String(i.key(), String::L_TAINTED)));
                                                         break;                                                          break;
                                                 }                                                  case AtResultTypeValue:
                                         }  
                                         break;  
                                 }  
                         case AtResultTypeValue:  
                                 {  
                                         for(ArrayValue::Iterator i(array); i; i.next() )  
                                                 if(i.value() &&!(pos--)){  
                                                         r.write(*i.value());                                                          r.write(*i.value());
                                                         break;                                                          break;
                                                 }                                                  case AtResultTypeHash:
                                         break;  
                                 }  
                         case AtResultTypeHash:  
                                 {  
                                         for(ArrayValue::Iterator i(array); i; i.next() )  
                                                 if(i.value() &&!(pos--)){  
                                                         r.write(SingleElementHash(i.key(), i.value()));                                                          r.write(SingleElementHash(i.key(), i.value()));
                                                         break;                                                          break;
                                                 }                                          }
                                         break;                                          break;
                                 }                                  }
                           }
                 }                  }
         }          }
 }  }
Line 1034  static void _reverse(Request& r, MethodP Line 1034  static void _reverse(Request& r, MethodP
         r.write(result);          r.write(result);
 }  }
   
   static void _compact(Request& r, MethodParams&) {
           GET_SELF(r, VArray).array().compact();
   }
   
   
 // constructor  // constructor
   
Line 1093  MArray::MArray(): Methoded(VARRAY_TYPE) Line 1097  MArray::MArray(): Methoded(VARRAY_TYPE)
         // ^array.reverse[]          // ^array.reverse[]
         add_native_method("reverse", Method::CT_DYNAMIC, _reverse, 0, 0);          add_native_method("reverse", Method::CT_DYNAMIC, _reverse, 0, 0);
   
           // ^array.compact[]
           add_native_method("compact", Method::CT_DYNAMIC, _compact, 0, 0);
   
         // ^array._at[first|last[;'key'|'value'|'hash']]          // ^array._at[first|last[;'key'|'value'|'hash']]
         // ^array._at([-+]offset)[['key'|'value'|'hash']]          // ^array._at([-+]offset)[['key'|'value'|'hash']]
         add_native_method("_at", Method::CT_DYNAMIC, _at, 1, 2);          add_native_method("_at", Method::CT_DYNAMIC, _at, 1, 2);

Removed from v.1.20  
changed lines
  Added in v.1.22


E-mail: