2011-10-28
2011-10-28 13:04:55 by Henrik Grubbström (Grubba) <grubba@grubba.org>
-
017b5735499ea38f2d5a92b61b4ff99740dd0d52
(74 lines)
(+36/-38)
[
Show
| Annotate
]
Branch: 7.9
Atomic megapatch: Use svalue accessor macros everywhere.
359:
void lvalue_to_svalue_no_free(struct svalue *to,struct svalue *lval)
{
#ifdef PIKE_SECURITY
- if(lval->type <= MAX_COMPLEX)
+ if(TYPEOF(*lval) <= MAX_COMPLEX)
if(!CHECK_DATA_SECURITY(lval->u.array, SECURITY_BIT_INDEX))
Pike_error("Index permission denied.\n");
#endif
- switch(lval->type)
+ switch(TYPEOF(*lval))
{
case T_ARRAY_LVALUE:
{
375:
SET_ONERROR(err, do_free_array, a);
for(e=0;e<a->size;e++) {
lvalue_to_svalue_no_free(ITEM(a)+e, ITEM(lval[1].u.array)+(e<<1));
- types |= 1 << ITEM(a)[e].type;
+ types |= 1 << TYPEOF(ITEM(a)[e]);
}
a->type_field = types;
- to->type = T_ARRAY;
- to->u.array=a;
+ SET_SVAL(*to, T_ARRAY, 0, array, a);
UNSET_ONERROR(err);
break;
}
391:
case T_OBJECT:
/* FIXME: Object subtypes! */
- if (lval[1].type == T_OBJ_INDEX)
+ if (TYPEOF(lval[1]) == T_OBJ_INDEX)
low_object_index_no_free (to, lval->u.object, lval[1].u.identifier);
else
- object_index_no_free(to, lval->u.object, lval->subtype, lval+1);
+ object_index_no_free(to, lval->u.object, SUBTYPEOF(*lval), lval+1);
break;
case T_ARRAY:
406:
break;
case T_MULTISET:
- to->type=T_INT;
+
if(multiset_member(lval->u.multiset,lval+1))
{
- to->u.integer=1;
- to->subtype=NUMBER_NUMBER;
+ SET_SVAL(*to, T_INT, NUMBER_NUMBER, integer, 1);
}else{
- to->u.integer=0;
- to->subtype=NUMBER_UNDEFINED;
+ SET_SVAL(*to, T_INT, NUMBER_UNDEFINED, integer, 0);
}
break;
428:
PMOD_EXPORT void assign_lvalue(struct svalue *lval,struct svalue *from)
{
#ifdef PIKE_SECURITY
- if(lval->type <= MAX_COMPLEX)
+ if(TYPEOF(*lval) <= MAX_COMPLEX)
if(!CHECK_DATA_SECURITY(lval->u.array, SECURITY_BIT_SET_INDEX))
Pike_error("Assign index permission denied.\n");
#endif
- switch(lval->type)
+ switch(TYPEOF(*lval))
{
case T_ARRAY_LVALUE:
{
INT32 e;
- if(from->type != T_ARRAY)
+ if(TYPEOF(*from) != T_ARRAY)
Pike_error("Trying to assign combined lvalue from non-array.\n");
if(from->u.array->size < (lval[1].u.array->size>>1))
460:
case T_OBJECT:
/* FIXME: Object subtypes! */
- if (lval[1].type == T_OBJ_INDEX)
+ if (TYPEOF(lval[1]) == T_OBJ_INDEX)
object_low_set_index (lval->u.object, lval[1].u.identifier, from);
else
- object_set_index(lval->u.object, lval->subtype, lval+1, from);
+ object_set_index(lval->u.object, SUBTYPEOF(*lval), lval+1, from);
break;
case T_ARRAY:
498:
union anything *get_pointer_if_this_type(struct svalue *lval, TYPE_T t)
{
#ifdef PIKE_SECURITY
- if(lval->type <= MAX_COMPLEX)
+ if(TYPEOF(*lval) <= MAX_COMPLEX)
if(!CHECK_DATA_SECURITY(lval->u.array, SECURITY_BIT_SET_INDEX))
Pike_error("Assign index permission denied.\n");
#endif
- switch(lval->type)
+ switch(TYPEOF(*lval))
{
case T_ARRAY_LVALUE:
return 0;
case T_SVALUE_PTR:
dmalloc_touch_svalue(lval->u.lval);
- if(lval->u.lval->type == t) return & ( lval->u.lval->u );
+ if(TYPEOF(*(lval->u.lval)) == t) return & ( lval->u.lval->u );
return 0;
case T_OBJECT:
/* FIXME: What about object subtypes? */
- return object_get_item_ptr(lval->u.object, lval->subtype, lval+1, t);
+ return object_get_item_ptr(lval->u.object, SUBTYPEOF(*lval), lval+1, t);
case T_ARRAY:
return array_get_item_ptr(lval->u.array,lval+1,t);
931:
if(d_flag>1) DEBUG_CHECK_THREAD();
#endif
- Pike_sp[0].type=99; /* an invalid type */
- Pike_sp[1].type=99;
- Pike_sp[2].type=99;
- Pike_sp[3].type=99;
+ SET_SVAL_TYPE(Pike_sp[0], 99); /* an invalid type */
+ SET_SVAL_TYPE(Pike_sp[1], 99);
+ SET_SVAL_TYPE(Pike_sp[2], 99);
+ SET_SVAL_TYPE(Pike_sp[3], 99);
if(Pike_sp<Pike_interpreter.evaluator_stack ||
Pike_mark_sp < Pike_interpreter.mark_stack || Pike_fp->locals>Pike_sp)
1989:
apply_svalue:
{
struct svalue *s=(struct svalue *)arg1;
- switch(s->type)
+ switch(TYPEOF(*s))
{
case T_INT:
if (!s->u.integer) {
2009:
Pike_error("Attempt to call a mapping\n");
default:
Pike_error("Call to non-function value type:%s.\n",
- get_name_of_type(s->type));
+ get_name_of_type(TYPEOF(*s)));
case T_FUNCTION:
- if(s->subtype == FUNCTION_BUILTIN)
+ if(SUBTYPEOF(*s) == FUNCTION_BUILTIN)
{
#ifdef PIKE_DEBUG
struct svalue *expected_stack = Pike_sp-args;
2070:
type=APPLY_SVALUE;
o=s->u.object;
if(o->prog == pike_trampoline_program &&
- s->subtype == QUICK_FIND_LFUN(pike_trampoline_program, LFUN_CALL))
+ SUBTYPEOF(*s) == QUICK_FIND_LFUN(pike_trampoline_program, LFUN_CALL))
{
fun=((struct pike_trampoline *)(o->storage))->func;
scope=((struct pike_trampoline *)(o->storage))->frame;
o=scope->current_object;
goto apply_low_with_scope;
}
- fun=s->subtype;
+ fun = SUBTYPEOF(*s);
goto apply_low;
}
break;
2562:
s=simple_free_buf(&save_buf);
fprintf(stderr,"%s\n",s);
free(s);
- if (Pike_sp[-1].type == PIKE_T_OBJECT && Pike_sp[-1].u.object->prog) {
+ if (TYPEOF(Pike_sp[-1]) == PIKE_T_OBJECT && Pike_sp[-1].u.object->prog) {
int fun = find_identifier("backtrace", Pike_sp[-1].u.object->prog);
if (fun != -1) {
fprintf(stderr, "Attempting to extract the backtrace.\n");
2819:
ret = 0;
} else {
if (low_unsafe_apply_handler (fun, handler, compat, args) &&
- rettypes && !((1 << Pike_sp[-1].type) & rettypes)) {
+ rettypes && !((1 << TYPEOF(Pike_sp[-1])) & rettypes)) {
if ((rettypes & BIT_ZERO) && SAFE_IS_ZERO (Pike_sp - 1)) {
pop_stack();
push_int(0);
2875:
PMOD_EXPORT void apply_svalue(struct svalue *s, INT32 args)
{
- if(s->type==T_INT)
+ if(TYPEOF(*s) == T_INT)
{
pop_n_elems(args);
push_int(0);
2955: Inside #if defined(PIKE_DEBUG)
for(s=Pike_interpreter.evaluator_stack;s<Pike_sp;s++) {
/* NOTE: Freed svalues are allowed on the stack. */
- if (s->type != PIKE_T_FREE) check_svalue(s);
+ if (TYPEOF(*s) != PIKE_T_FREE) check_svalue(s);
}
s=Pike_interpreter.evaluator_stack;
3085:
for (i = 0; i < args; i++) {
struct svalue *arg = f->locals + i;
- switch (arg->type) {
+ switch (TYPEOF(*arg)) {
case T_INT:
fprintf (stderr, "%ld", (long) arg->u.integer);
break;
3158:
case T_FUNCTION:
/* FIXME: Wide string identifiers. */
- if(arg->subtype == FUNCTION_BUILTIN)
+ if(SUBTYPEOF(*arg) == FUNCTION_BUILTIN)
fputs (arg->u.efun->name->str, stderr);
else if(arg->u.object->prog)
- fputs (safe_idname_from_int(arg->u.object->prog,arg->subtype), stderr);
+ fputs (safe_idname_from_int(arg->u.object->prog,
+ SUBTYPEOF(*arg)), stderr);
else
fputc ('0', stderr);
break;
3205:
break;
default:
- fprintf (stderr, "<Unknown %d>", arg->type);
+ fprintf (stderr, "<Unknown %d>", TYPEOF(*arg));
}
if (i < args - 1) fputs (", ", stderr);