|
|
| version 1.32, 2024/10/28 00:33:41 | version 1.37, 2024/11/29 16:09:53 |
|---|---|
| Line 1 | Line 1 |
| /** @file | /** @file |
| Parser: @b array parser class. | Parser: @b array parser class. |
| Copyright (c) 2001-2023 Art. Lebedev Studio (http://www.artlebedev.com) | Copyright (c) 2001-2024 Art. Lebedev Studio (http://www.artlebedev.com) |
| Authors: Konstantin Morshnev <moko@design.ru>, Alexandr Petrosian <paf@design.ru> | Authors: Konstantin Morshnev <moko@design.ru>, Alexandr Petrosian <paf@design.ru> |
| */ | */ |
| Line 53 static void _copy_or_add(Request& r, Met | Line 53 static void _copy_or_add(Request& r, Met |
| self_array.put(i.index(), i.value()); | self_array.put(i.index(), i.value()); |
| } | } |
| } else { | } else { |
| self_array.append(src->array()); | self_array.copy(src->array()); |
| return; | |
| } | } |
| } else { | } else { |
| HashStringValue* src_hash=vsrc.as_hash("param must be array or"); | HashStringValue* src_hash=vsrc.as_hash("param must be array or"); |
| Line 656 static void _remove(Request& r, MethodPa | Line 657 static void _remove(Request& r, MethodPa |
| array.invalidate(); | array.invalidate(); |
| } | } |
| static void _pop(Request& r, MethodParams& params) { | static void _pop(Request& r, MethodParams&) { |
| ArrayValue& array=GET_SELF(r, VArray).array(); | ArrayValue& array=GET_SELF(r, VArray).array(); |
| Value *result=array.pop(); | Value *result=array.pop(); |
| if(result){ | if(result){ |
| Line 690 static void _for(Request& r, MethodParam | Line 691 static void _for(Request& r, MethodParam |
| if(delim_maybe_code){ // delimiter set | if(delim_maybe_code){ // delimiter set |
| bool need_delim=false; | bool need_delim=false; |
| for(ArrayValue::Iterator i(array); i; i.next()){ | for(ArrayValue::RobustIterator i(array); i; i.next()){ |
| if(key_var_name){ | if(key_var_name){ |
| VString* vkey=new VString(*new String(i.key(), String::L_TAINTED)); | VString* vkey=new VString(*new String(i.key(), String::L_TAINTED)); |
| r.put_element(caller, *key_var_name, vkey); | r.put_element(caller, *key_var_name, vkey); |
| Line 716 static void _for(Request& r, MethodParam | Line 717 static void _for(Request& r, MethodParam |
| break; | break; |
| } | } |
| } else { | } else { |
| for(ArrayValue::Iterator i(array); i; i.next()){ | for(ArrayValue::RobustIterator i(array); i; i.next()){ |
| if(key_var_name){ | if(key_var_name){ |
| VString* vkey=new VString(*new String(i.key(), String::L_TAINTED)); | VString* vkey=new VString(*new String(i.key(), String::L_TAINTED)); |
| r.put_element(caller, *key_var_name, vkey); | r.put_element(caller, *key_var_name, vkey); |
| Line 749 static void _foreach(Request& r, MethodP | Line 750 static void _foreach(Request& r, MethodP |
| if(delim_maybe_code){ // delimiter set | if(delim_maybe_code){ // delimiter set |
| bool need_delim=false; | bool need_delim=false; |
| for(ArrayValue::Iterator i(array); i; i.next()){ | for(ArrayValue::RobustIterator i(array); i; i.next()){ |
| if(i.value()){ | if(i.value()){ |
| if(key_var_name){ | if(key_var_name){ |
| VString* vkey=new VString(*new String(i.key(), String::L_TAINTED)); | VString* vkey=new VString(*new String(i.key(), String::L_TAINTED)); |
| Line 777 static void _foreach(Request& r, MethodP | Line 778 static void _foreach(Request& r, MethodP |
| } | } |
| } | } |
| } else { | } else { |
| for(ArrayValue::Iterator i(array); i; i.next()){ | for(ArrayValue::RobustIterator i(array); i; i.next()){ |
| if(i.value()){ | if(i.value()){ |
| if(key_var_name){ | if(key_var_name){ |
| VString* vkey=new VString(*new String(i.key(), String::L_TAINTED)); | VString* vkey=new VString(*new String(i.key(), String::L_TAINTED)); |
| Line 841 static void _sort(Request& r, MethodPara | Line 842 static void _sort(Request& r, MethodPara |
| int pos=0; | int pos=0; |
| bool key_values_are_strings=true; | bool key_values_are_strings=true; |
| for(ArrayValue::Iterator i(array); i; i.next() ){ | for(ArrayValue::RobustIterator i(array); i; i.next() ){ |
| if(i.value()){ | if(i.value()){ |
| if(key_var) | if(key_var) |
| r.put_element(*context, *key_var, new VString(*new String(i.key(), String::L_TAINTED))); | r.put_element(*context, *key_var, new VString(*new String(i.key(), String::L_TAINTED))); |
| Line 1033 static void _select(Request& r, MethodPa | Line 1034 static void _select(Request& r, MethodPa |
| } | } |
| } | } |
| } else { | } else { |
| for(ArrayValue::Iterator i(source_array); i; i.next() ){ | for(ArrayValue::RobustIterator i(source_array); i; i.next() ){ |
| if(Value *value=i.value()){ | if(Value *value=i.value()){ |
| if(key_var_name) | if(key_var_name) |
| r.put_element(caller, *key_var_name, new VString(*new String(i.key(), String::L_TAINTED))); | r.put_element(caller, *key_var_name, new VString(*new String(i.key(), String::L_TAINTED))); |