Branch: Tag:

2008-05-13

2008-05-13 17:11:19 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Changed representation of GETTER/SETTER identifiers.
The getter/setter information is now stored directly in struct identifier, rather than embedded in the program code.
This means that getter/setters implemented in C won't need to allocate any space for the program code.
It also does away with one level of indirection, which should improve performance marginally.

Rev: src/docode.c:1.199
Rev: src/object.c:1.292
Rev: src/program.c:1.693
Rev: src/program.h:1.244

2:   || 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: program.h,v 1.243 2008/05/11 14:55:54 mast Exp $ + || $Id: program.h,v 1.244 2008/05/13 17:11:19 grubba Exp $   */      #ifndef PROGRAM_H
205:    unsigned short id; /* Reference number. */    } ext_ref;    +  /* Getter/setter reference pair. (IDENTIFIER_VARIABLE && PIKE_T_GET_SET) +  */ +  struct { +  INT16 getter; /* Reference to getter. */ +  INT16 setter; /* Reference to setter. */ +  } gs_info; +     /* C function pointer. (IDENTIFIER_C_FUNCTION) */    void (*c_fun)(INT32);