Branch: Tag:

2000-12-02

2000-12-02 14:57:32 by Henrik Grubbström (Grubba) <grubba@grubba.org>

continue no longer breaks catch().
Fixes [bug 754 (#754)].

Rev: src/docode.c:1.87

5:   \*/   /**/   #include "global.h" - RCSID("$Id: docode.c,v 1.86 2000/12/01 08:09:45 hubbe Exp $"); + RCSID("$Id: docode.c,v 1.87 2000/12/02 14:57:32 grubba Exp $");   #include "las.h"   #include "program.h"   #include "pike_types.h"
1196:       case F_CATCH:    { +  /* FIXME: Pike 7.0 compatibility? */    INT32 break_save = current_break; -  INT32 continue_save = current_continue; +  /* INT32 continue_save = current_continue; */    INT32 *prev_switch_jumptable = current_switch_jumptable;       current_switch_jumptable=0;    current_break=alloc_label(); -  current_continue=alloc_label(); +  /* current_continue=alloc_label(); */       tmp1=do_jump(F_CATCH,-1);    DO_CODE_BLOCK(CAR(n)); -  ins_label(current_continue); +  /* ins_label(current_continue); */    ins_label(current_break);    emit0(F_THROW_ZERO);    ins_label(DO_NOT_WARN((INT32)tmp1));       current_break=break_save; -  current_continue=continue_save; +  /* current_continue=continue_save; */    current_switch_jumptable = prev_switch_jumptable;    return 1;    }