pike.git / src / interpret_functions.h

version» Context lines:

pike.git/src/interpret_functions.h:1:   /* -  * $Id: interpret_functions.h,v 1.44 2001/02/05 21:13:10 grubba Exp $ +  * $Id: interpret_functions.h,v 1.45 2001/02/19 23:49:59 grubba Exp $    *    * Opcode definitions for the interpreter.    */      OPCODE0(F_UNDEFINED,"push UNDEFINED")    push_int(0);    Pike_sp[-1].subtype=NUMBER_UNDEFINED;   BREAK;      OPCODE0(F_CONST0, "push 0")
pike.git/src/interpret_functions.h:1394:      OPCODE0(F_SOFT_CAST, "soft cast")    /* Stack: type_string, value */   #ifdef PIKE_DEBUG    if (Pike_sp[-2].type != T_STRING) {    /* FIXME: The type should really be T_TYPE... */    fatal("Argument 1 to soft_cast isn't a string!\n");    }   #endif /* PIKE_DEBUG */    if (runtime_options & RUNTIME_CHECK_TYPES) { -  struct pike_string *sval_type = get_type_of_svalue(Pike_sp-1); -  if (!pike_types_le(sval_type, Pike_sp[-2].u.string)) { +  struct pike_type *sval_type = get_type_of_svalue(Pike_sp-1); +  if (!pike_types_le(sval_type, Pike_sp[-2].u.type)) {    /* get_type_from_svalue() doesn't return a fully specified type    * for array, mapping and multiset, so we perform a more lenient    * check for them.    */    if (!pike_types_le(sval_type, weak_type_string) ||    !match_types(sval_type, Pike_sp[-2].u.string)) {    struct pike_string *t1;    struct pike_string *t2;    char *fname = "__soft-cast";    ONERROR tmp1;
pike.git/src/interpret_functions.h:1423:    if ((!name->size_shift) && (name->len < 100))    fname = name->str;    }       t1 = describe_type(Pike_sp[-2].u.string);    SET_ONERROR(tmp1, do_free_string, t1);       t2 = describe_type(sval_type);    SET_ONERROR(tmp2, do_free_string, t2);    -  free_string(sval_type); +  free_type(sval_type);       bad_arg_error(NULL, Pike_sp-1, 1, 1, t1->str, Pike_sp-1,    "%s(): Soft cast failed. Expected %s, got %s\n",    fname, t1->str, t2->str);    /* NOT_REACHED */    UNSET_ONERROR(tmp2);    UNSET_ONERROR(tmp1);    free_string(t2);    free_string(t1);    }    } -  free_string(sval_type); +  free_type(sval_type);   #ifdef PIKE_DEBUG    if (d_flag > 2) { -  struct pike_string *t = describe_type(Pike_sp[-2].u.string); +  struct pike_string *t = describe_type(Pike_sp[-2].u.type);    fprintf(stderr, "Soft cast to %s\n", t->str);    free_string(t);    }   #endif /* PIKE_DEBUG */    }    stack_swap();    pop_stack();   BREAK;      OPCODE0(F_RANGE, "range")