Branch: Tag:

2007-04-21

2007-04-21 20:08:26 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Implemented PIKE_T_ATTRIBUTE type nodes.
Added push_type_attribute().
Added use and documentation of CompilationHandler()->handle_attribute_constant() when attributed parameters are encountered with constant values.
low_new_check_call() now takes an svalue as the fourth argument.
Fixed bug in get_first_argument_type() for anded function types.
Added register_attribute_handler().
Added efuns __register_attribute_handler() and __handle_attribute_constant().
The efun __low_check_call() now takes a fourth argument.

Rev: src/builtin_functions.c:1.637
Rev: src/pike_types.c:1.293
Rev: src/pike_types.h:1.105

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: builtin_functions.c,v 1.636 2007/04/21 12:36:03 grubba Exp $ + || $Id: builtin_functions.c,v 1.637 2007/04/21 20:08:25 grubba Exp $   */      #include "global.h"
2273:   {    struct pike_type *res;    INT32 flags = 0; +  struct svalue *sval = NULL;    if (args < 2) Pike_error("Bad number of arguments to __low_check_call().\n");    if (Pike_sp[-args].type != PIKE_T_TYPE) {    Pike_error("Bad argument 1 to __low_check_call() expected type.\n");
2286:    }    flags = Pike_sp[2-args].u.integer;    } +  if (args > 3) sval = Pike_sp + 3 - args;    if (!(res = low_new_check_call(Pike_sp[-args].u.type, -  Pike_sp[1-args].u.type, flags))) { +  Pike_sp[1-args].u.type, flags, sval))) {    pop_n_elems(args);    push_undefined();    } else {
9209:    OPT_TRY_OPTIMIZE);       ADD_EFUN("__low_check_call", f___low_check_call, -  tFunc(tType(tCallable) tType(tMix) tOr(tInt,tVoid), +  tFunc(tType(tCallable) tType(tMix) tOr(tInt,tVoid) tOr(tMix,tVoid),    tType(tCallable)),    OPT_TRY_OPTIMIZE);