Branch: Tag:

2007-09-24

2007-09-24 19:18:25 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Changed the semantics of program_index_no_free() somewhat in preparation for having symbols with storage in parent classes.
Changed the representation of tentatively typed function identifiers.
They are now marked by having the run time type T_MIXED.
Changed the encoding in the identifier_flags field somewhat to free up a bit to indicate that the symbol has storage in an external scope.
Bumped version to 7.7.36 since the dump format for programs has changed.
Fixed minor bug in index_no_free() when indexing a function that wasn't a program.

Rev: src/object.c:1.275
Rev: src/operators.c:1.222
Rev: src/program.c:1.619
Rev: src/program.h:1.230
Rev: src/version.h:1.393

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: operators.c,v 1.221 2007/05/03 09:04:10 grubba Exp $ + || $Id: operators.c,v 1.222 2007/09/24 19:18:24 grubba Exp $   */      #include "global.h"
97:    get_name_of_type (ind->type));    }    +  case T_FUNCTION:    case T_PROGRAM: -  program_index_no_free(to, what->u.program, ind); -  break; +  if (program_index_no_free(to, what, ind)) break; +  goto index_error;    -  case T_FUNCTION: -  { -  struct program *p = program_from_svalue(what); -  if (p) { -  program_index_no_free(to, p, ind); -  break; -  } -  } -  /* FALL THROUGH */ -  +    #ifdef AUTO_BIGNUM    case T_INT:    if (ind->type == T_STRING) {
135:   #endif /* AUTO_BIGNUM */       default: +  index_error:    if (ind->type == T_INT)    Pike_error ("Cannot index %s with %"PRINTPIKEINT"d.\n",    (what->type == T_INT && !what->u.integer)?