pike.git
/
src
/
docode.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/docode.c:1:
/* || This file is part of Pike. For copyright information see COPYRIGHT. || Pike is distributed under GPL, LGPL and MPL. See the file COPYING || for more information.
-
|| $Id: docode.c,v 1.
205
2009/11/
10
08
:
41
:
33
peter
Exp $
+
|| $Id: docode.c,v 1.
206
2009/11/
20
10:
58
:
09
grubba
Exp $
*/ #include "global.h" #include "las.h" #include "program.h" #include "pike_types.h" #include "stralloc.h" #include "interpret.h" #include "constants.h" #include "array.h"
pike.git/src/docode.c:863:
n->u.node.b->u.sval.u.integer, n->u.node.a->u.sval.u.integer); return 1; case F_EXTERNAL: case F_GET_SET: { int level = 0; struct program_state *state = Pike_compiler; while (state && (state->new_program->id != n->u.integer.a)) {
+
state->new_program->flags |= PROGRAM_USES_PARENT | PROGRAM_NEEDS_PARENT;
state = state->previous; level++; } if (!state) { my_yyerror("Program parent %d lost during compiling.", n->u.integer.a); emit1(F_NUMBER,0); } else if (flags & WANT_LVALUE) { if (n->u.integer.b == IDREF_MAGIC_THIS) { my_yyerror("this is not an lvalue."); }
pike.git/src/docode.c:2522:
emit1(F_GLOBAL,n->u.sval.subtype); return 1; } if(n->u.sval.u.object->next == n->u.sval.u.object) { int x=0; #if 0 struct object *o;
-
for(o=Pike_compiler->fake_object;o!=n->u.sval.u.object;o=o->parent)
+
for(o=Pike_compiler->fake_object;o!=n->u.sval.u.object;o=o->parent)
{
+
state->new_program->flags |=
+
PROGRAM_USES_PARENT | PROGRAM_NEEDS_PARENT;
x++;
-
+
}
#else struct program_state *state=Pike_compiler;
-
for(;state->fake_object!=n->u.sval.u.object;state=state->previous)
+
for(;state->fake_object!=n->u.sval.u.object;state=state->previous)
{
+
state->new_program->flags |=
+
PROGRAM_USES_PARENT | PROGRAM_NEEDS_PARENT;
x++;
-
+
}
#endif emit2(F_EXTERNAL, n->u.sval.subtype, x); Pike_compiler->new_program->flags |= PROGRAM_USES_PARENT | PROGRAM_NEEDS_PARENT; return 1; } } /* FALL_THROUGH */ default: #ifdef PIKE_DEBUG