pike.git / src / docode.c

version» Context lines:

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.198 2008/05/11 22:44:00 mast Exp $ + || $Id: docode.c,v 1.199 2008/05/13 17:11:18 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:730: Inside #if defined(PIKE_DEBUG)
   if (!IDENTIFIER_IS_VARIABLE(id->identifier_flags) ||    (id->run_time_type != PIKE_T_GET_SET)) {    Pike_fatal("Not a getter/setter in a F_GET_SET node!\n"    " identifier_flags: 0x%08x\n"    " run_time_type; %s (%d)\n",    id->identifier_flags,    get_name_of_type(id->run_time_type),    id->run_time_type);    }   #endif /* PIKE_DEBUG */ -  f = ((INT32 *)(inh->prog->program + id->func.offset))[1]; +  f = id->func.gs_info.setter;    if (f == -1) {    yywarning("Variable %S lacks a setter.", id->name);    } else if (!level) {    f += inh->identifier_level;    emit0(F_MARK);    code_expression(val, 0, "RHS");    emit_multi_assign(vals, vars, no+1);    emit1(F_CALL_LFUN, f);    emit0(F_POP_VALUE);    }
pike.git/src/docode.c:884: Inside #if defined(PIKE_DEBUG)
   if (!IDENTIFIER_IS_VARIABLE(id->identifier_flags) ||    (id->run_time_type != PIKE_T_GET_SET)) {    Pike_fatal("Not a getter/setter in a F_GET_SET node!\n"    " identifier_flags: 0x%08x\n"    " run_time_type; %s (%d)\n",    id->identifier_flags,    get_name_of_type(id->run_time_type),    id->run_time_type);    }   #endif /* PIKE_DEBUG */ -  f = ((INT32 *)(inh->prog->program + id->func.offset))[0]; +  f = id->func.gs_info.getter;    if (f == -1) {    yywarning("Variable %S lacks a getter.", id->name);    } else if (!level) {    return do_lfun_call(f + inh->identifier_level, NULL);    } else {    /* FIXME: Support inlining for the parent case.    *    * do_call_external(n->u.integer.a, f + inh->identifier_level,    * NULL);    */
pike.git/src/docode.c:1253:    }    tmp1=store_constant(&CAAR(n)->u.sval,    !(CAAR(n)->tree_info & OPT_EXTERNAL_DEPEND),    CAAR(n)->name);    emit1(F_LTOSVAL_CALL_BUILTIN_AND_ASSIGN, DO_NOT_WARN((INT32)tmp1));    POP_AND_DONT_CLEANUP;    return 1;    }    }    } -  +  /* FALL_THROUGH */    default:    switch(CDR(n)->token)    {    case F_LOCAL:    if(CDR(n)->u.integer.a >=    find_local_frame(CDR(n)->u.integer.b)->max_number_of_locals)    yyerror("Illegal to use local variable here.");       if(CDR(n)->u.integer.b) goto normal_assign;   
pike.git/src/docode.c:1317: Inside #if defined(PIKE_DEBUG)
   if (!IDENTIFIER_IS_VARIABLE(id->identifier_flags) ||    (id->run_time_type != PIKE_T_GET_SET)) {    Pike_fatal("Not a getter/setter in a F_GET_SET node!\n"    " identifier_flags: 0x%08x\n"    " run_time_type; %s (%d)\n",    id->identifier_flags,    get_name_of_type(id->run_time_type),    id->run_time_type);    }   #endif /* PIKE_DEBUG */ -  f = ((INT32 *)(inh->prog->program + id->func.offset))[1]; +  f = id->func.gs_info.setter;    if (f == -1) {    yywarning("Variable %S lacks a setter.", id->name);    } else if (!level) {    f += inh->identifier_level;    if (flags & DO_POP) {    emit0(F_MARK);    code_expression(CAR(n), 0, "RHS");    } else {    code_expression(CAR(n), 0, "RHS");    emit0(F_MARK);