--- parser3/src/main/execute.C 2002/02/18 15:21:01 1.219 +++ parser3/src/main/execute.C 2002/03/27 13:33:32 1.222 @@ -4,7 +4,7 @@ Copyright (c) 2001, 2002 ArtLebedev Group (http://www.artlebedev.com) Author: Alexandr Petrosian (http://paf.design.ru) - $Id: execute.C,v 1.219 2002/02/18 15:21:01 paf Exp $ + $Id: execute.C,v 1.222 2002/03/27 13:33:32 paf Exp $ */ #include "pa_opcode.h" @@ -24,6 +24,14 @@ #include "pa_wwrapper.h" //#define DEBUG_EXECUTE +//#define DEBUG_STRING_APPENDS_VS_EXPANDS + + +#ifdef DEBUG_STRING_APPENDS_VS_EXPANDS +ulong wcontext_result_size=0; +#endif + + const uint ANTI_ENDLESS_EXECUTE_RECOURSION=500; @@ -479,7 +487,7 @@ void Request::execute(const Array& ops) } } catch(...) { // record it to stack trace - trace.push((void *)&frame->name()); + exception_trace.push((void *)&frame->name()); /*re*/throw; } } else @@ -496,6 +504,11 @@ void Request::execute(const Array& ops) root=POP(); self=static_cast(POP()); +#ifdef DEBUG_STRING_APPENDS_VS_EXPANDS + if(const String *s=value->get_string()) + wcontext_result_size+=s->used_rows()*sizeof(String::Chunk::Row); +#endif + PUSH(value); #ifdef DEBUG_EXECUTE debug_printf(pool(), "<-returned");