--- parser3/src/classes/hash.C 2012/06/13 22:53:47 1.115 +++ parser3/src/classes/hash.C 2013/10/17 21:52:32 1.118 @@ -16,7 +16,7 @@ #include "pa_vbool.h" #include "pa_vmethod_frame.h" -volatile const char * IDENT_HASH_C="$Id: hash.C,v 1.115 2012/06/13 22:53:47 moko Exp $"; +volatile const char * IDENT_HASH_C="$Id: hash.C,v 1.118 2013/10/17 21:52:32 moko Exp $"; // class @@ -107,9 +107,9 @@ public: return false; } - bool add_row_cell(SQL_Error& error, const char *ptr, size_t ) { + bool add_row_cell(SQL_Error& error, const char *str, size_t ) { try { - String& cell=*new String(ptr, String::L_TAINTED /* no length as 0x00 can be inside */); + const String& cell=str?*new String(str, String::L_TAINTED /* no length as 0x00 can be inside */):String::Empty; bool duplicate=false; if(one_bool_column) { @@ -415,10 +415,10 @@ static bool one_foreach_cycle( Value& var_context=*info->var_context; if(info->key_var_name){ VString* vkey=new VString(*new String(akey, String::L_TAINTED)); - var_context.put_element(*info->key_var_name, vkey, false); + info->r->put_element(var_context, *info->key_var_name, vkey); } if(info->value_var_name) - var_context.put_element(*info->value_var_name, avalue, false); + info->r->put_element(var_context, *info->value_var_name, avalue); if(info->delim_maybe_code){ // delimiter set StringOrValue sv_processed=info->r->process(*info->body_code);