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: program.c,v 1.377 2001/09/27 15:17:47 grubba Exp $"); + RCSID("$Id: program.c,v 1.378 2001/09/29 06:19:28 hubbe Exp $");   #include "program.h"   #include "object.h"   #include "dynamic_buffer.h"
3216:    id->opt_flags);       } -  else if(id->identifier_flags & IDENTIFIER_CONSTANT && +  else if((id->identifier_flags & IDENTIFIER_CONSTANT) &&    id->func.offset != -1)    {    c=& Pike_compiler->new_program->constants[id->func.offset].sval;    }    } - #if 0 +     else    { -  /* Actually, we do not allow fake objects to enter -  * the mainstream, but it would be possible to do so. -  * I will leave this code here just in case someone wants -  * to use it in the future -  */ -  if(id->identifier_flags & IDENTIFIER_CONSTANT) +  if((id->identifier_flags & IDENTIFIER_CONSTANT) && +  id->func.offset != -1 && +  INHERIT_FROM_INT(c->u.object->prog, c->subtype)->prog-> +  constants[id->func.offset].sval.type == T_PROGRAM)    {    /* In this one case we allow fake objects to enter the    * mainstream...
3238: Inside #if 0
   break;    }    } - #endif +     }       if(c && !svalues_are_constant(c,1,BIT_MIXED,0))