Branch: Tag:

2001-09-29

2001-09-29 06:19:28 by Fredrik Hübinette (Hubbe) <hubbe@hubbe.net>

reworked trampolines to cause less circular references, solves [bug 1937 (#1937)]

Rev: src/apply_low.h:1.4
Rev: src/docode.c:1.134
Rev: src/interpret_functions.h:1.95
Rev: src/language.yacc:1.262
Rev: src/las.c:1.269
Rev: src/las.h:1.53
Rev: src/pike_types.h:1.73
Rev: src/program.c:1.378

5:   \*/   /**/   #include "global.h" - RCSID("$Id: docode.c,v 1.133 2001/09/28 00:01:44 hubbe Exp $"); + RCSID("$Id: docode.c,v 1.134 2001/09/29 06:19:26 hubbe Exp $");   #include "las.h"   #include "program.h"   #include "pike_types.h"
2013:    }       case F_TRAMPOLINE: -  emit1(F_TRAMPOLINE,n->u.id.number); +  { +  struct compiler_frame *f; +  int depth=0; +  for(f=Pike_compiler->compiler_frame; +  f!=n->u.trampoline.frame;f=f->previous) +  depth++; +  +  emit2(F_TRAMPOLINE,n->u.trampoline.ident,depth);    return 1; -  +  }       case F_IDENTIFIER:    if(IDENTIFIER_IS_FUNCTION(ID_FROM_INT(Pike_compiler->new_program, n->u.id.number)->identifier_flags))