--- parser3/src/include/pa_request.h 2002/09/18 12:40:38 1.149 +++ parser3/src/include/pa_request.h 2002/10/14 13:53:21 1.153 @@ -8,7 +8,7 @@ #ifndef PA_REQUEST_H #define PA_REQUEST_H -static const char* IDENT_REQUEST_H="$Date: 2002/09/18 12:40:38 $"; +static const char* IDENT_REQUEST_H="$Date: 2002/10/14 13:53:21 $"; #include "pa_pool.h" #include "pa_hash.h" @@ -315,14 +315,15 @@ private: // execute.C const Method& method, VString *optional_param, const String **return_string); void execute_nonvirtual_method(VStateless_class& aclass, - const String& method_name, VString *optional_param, + const Method *method, VString *optional_param, const String **return_string, const Method **return_method=0); //} /// for @main[] const String *execute_virtual_method(Value& aself, const String& method_name); - Value *get_element(const String *& remember_name, bool can_call_operator); + Value *get_element(const String *& remember_name, + bool can_call_operator, bool should_explode_junction=false/*there's only one place when true*/); private: // defaults @@ -363,7 +364,6 @@ private: /// Auto-object used to save request context across ^try body class Request_context_saver { - Request& fr; /// exception stack trace @@ -391,7 +391,7 @@ public: flang(ar.flang), fconnection(ar.fconnection), fr(ar) {} - ~Request_context_saver() { + void restore() { fr.exception_trace.top_index(exception_trace); fr.stack.top_index(stack); fr.self=self; fr.method_frame=method_frame, fr.rcontext=rcontext; fr.wcontext=wcontext;