--- parser3/src/main/execute.C 2015/03/16 09:47:34 1.372 +++ parser3/src/main/execute.C 2015/05/08 14:30:44 1.375 @@ -21,7 +21,7 @@ #include "pa_vimage.h" #include "pa_wwrapper.h" -volatile const char * IDENT_EXECUTE_C="$Id: execute.C,v 1.372 2015/03/16 09:47:34 misha Exp $" IDENT_PA_OPCODE_H IDENT_PA_OPERATION_H IDENT_PA_VCODE_FRAME_H IDENT_PA_WWRAPPER_H; +volatile const char * IDENT_EXECUTE_C="$Id: execute.C,v 1.375 2015/05/08 14:30:44 moko Exp $" IDENT_PA_OPCODE_H IDENT_PA_OPERATION_H IDENT_PA_VCODE_FRAME_H IDENT_PA_WWRAPPER_H; //#define DEBUG_EXECUTE @@ -1394,7 +1394,7 @@ StringOrValue Request::process(Value& in Junction* junction=input_value.get_junction(); if(junction) { if(junction->is_getter) { // is it a getter-junction? - return process_getter(*junction); + return process(process_getter(*junction).as_value(), intercept_string); } if(junction->code) { // is it a code-junction? @@ -1456,10 +1456,8 @@ StringOrValue Request::process(Value& in void Request::process_write(Value& input_value) { Junction* junction=input_value.get_junction(); if(junction) { - if(junction->is_getter) { // is it a getter-junction? - write_pass_lang(process_getter(*junction)); - return; - } + // no getter-junction check as process_write is called + // to process method arguments, not from get_element if(junction->code) { // is it a code-junction? // process it @@ -1629,6 +1627,7 @@ const String* Request::get_method_filena origin=i.next().origin; break; } + default: break; } if(origin.file_no) return get_used_filename(origin.file_no);