--- parser3/src/classes/table.C 2024/12/11 03:22:23 1.377 +++ parser3/src/classes/table.C 2025/05/26 01:56:54 1.380 @@ -26,7 +26,7 @@ #include "pa_array.h" #include "pa_varray.h" -volatile const char * IDENT_TABLE_C="$Id: table.C,v 1.377 2024/12/11 03:22:23 moko Exp $"; +volatile const char * IDENT_TABLE_C="$Id: table.C,v 1.380 2025/05/26 01:56:54 moko Exp $"; // class @@ -1071,7 +1071,7 @@ static void _cells(Request& r, MethodPar size_t row_size=self_table[self_table.current()]->count(); // number of columns in current row if(params.count()){ - int limit=params.as_int(params.count()-1, "offset must be expression", r); + int limit=params.as_int(params.count()-1, "limit must be expression", r); if(limit<0) limit=0; if((size_t)limitis_null) value=VVoid::get(); else - value=new VString(*new String(ph->value, String::L_TAINTED)); + value=new VString(ph->value); hash.put(ph->name, value); } } @@ -1567,7 +1567,7 @@ static void _select(Request& r, MethodPa if(r.check_skip_break()) break; - if(condition && ++appended > (size_t)offset) // ...condition is true, adding to the result + if(condition && ++appended > (size_t)offset && source_table.valid(row)) // ...condition is true, adding to the result result_table+=source_table[row]; if(row==0) break; } @@ -1580,7 +1580,7 @@ static void _select(Request& r, MethodPa if(r.check_skip_break()) break; - if(condition && ++appended > (size_t)offset) // ...condition is true, adding to the result + if(condition && ++appended > (size_t)offset && source_table.valid(row)) // ...condition is true, adding to the result result_table+=source_table[row]; } }