Branch: Tag:

2002-09-23

2002-09-23 20:12:59 by Martin Stjernholm <mast@lysator.liu.se>

Replaced the F_THROW_ZERO opcode used at normal exit from catch blocks with
F_EXIT_CATCH, which uses the newer escape catch feature. This avoids a
longjmp at the normal exit of every catch block.

Also changed the return value for normal catch block exits to be UNDEFINED
and not zero.

Rev: src/docode.c:1.147
Rev: src/interpret_functions.h:1.108

5:   \*/   /**/   #include "global.h" - RCSID("$Id: docode.c,v 1.146 2002/09/23 14:34:29 grubba Exp $"); + RCSID("$Id: docode.c,v 1.147 2002/09/23 20:12:59 mast Exp $");   #include "las.h"   #include "program.h"   #include "pike_types.h"
1897:    in_catch--;       ins_label(current_label->break_label); -  emit0(F_THROW_ZERO); -  /* do_escape_catch(); */ +  emit0(F_EXIT_CATCH);    POP_STATEMENT_LABEL;    current_switch.jumptable = prev_switch_jumptable;