pike.git/
src/
docode.c
Branch:
Tag:
Non-build tags
All tags
No tags
2011-10-28
2011-10-28 13:04:55 by Henrik Grubbström (Grubba) <grubba@grubba.org>
017b5735499ea38f2d5a92b61b4ff99740dd0d52 (
51
lines) (+
24
/-
27
)
[
Show
|
Annotate
]
Branch:
7.9
Atomic megapatch: Use svalue accessor macros everywhere.
322:
static int is_efun(node *n, c_fun fun) { return n && n->token == F_CONSTANT &&
-
n->u.sval
.subtype
== FUNCTION_BUILTIN &&
+
SUBTYPEOF(
n->u.sval
)
== FUNCTION_BUILTIN &&
n->u.sval.u.efun->function == fun; }
547:
tmp1=store_constant(&n->u.sval, !(n->tree_info & OPT_EXTERNAL_DEPEND), n->name);
-
if(n->u.sval
.type
== T_FUNCTION &&
-
n->u.sval
.subtype
== FUNCTION_BUILTIN)
+
if(
TYPEOF(
n->u.sval
)
== T_FUNCTION &&
+
SUBTYPEOF(
n->u.sval
)
== FUNCTION_BUILTIN)
emit1(F_CALL_BUILTIN, DO_NOT_WARN((INT32)tmp1)); else emit1(F_APPLY, DO_NOT_WARN((INT32)tmp1));
611:
case F_CONSTANT: tmp1=store_constant(&n->u.sval, (!(n->tree_info & OPT_EXTERNAL_DEPEND)) &&
-
(n->u.sval
.type
!= T_TYPE),
+
(
TYPEOF(
n->u.sval
)
!= T_TYPE),
n->name); emit1(F_CONSTANT, DO_NOT_WARN((INT32)tmp1)); break;
938:
*/ struct svalue *s = &state->new_program-> constants[id->func.const_info.offset].sval;
-
if (s
->type
== T_PROGRAM &&
+
if (
TYPEOF(*
s
)
== T_PROGRAM &&
s->u.program->flags & PROGRAM_USES_PARENT) { /* An external reference is required. */ emit2(F_EXTERNAL, n->u.integer.b, level);
966:
*/ struct svalue *s = &state->new_program-> constants[id->func.const_info.offset].sval;
-
if (s
->type
== T_PROGRAM &&
+
if (
TYPEOF(*
s
)
== T_PROGRAM &&
s->u.program->flags & PROGRAM_USES_PARENT) { /* Program using parent. Convert to an LFUN. */ emit1(F_LFUN, n->u.integer.b);
1287:
} case F_APPLY: if ((CAAR(n)->token == F_CONSTANT) &&
-
(CAAR(n)->u.sval
.type
== T_FUNCTION) &&
-
(CAAR(n)->u.sval
.subtype
== FUNCTION_BUILTIN) &&
+
(
TYPEOF(
CAAR(n)->u.sval
)
== T_FUNCTION) &&
+
(
SUBTYPEOF(
CAAR(n)->u.sval
)
== FUNCTION_BUILTIN) &&
(CAAR(n)->u.sval.u.efun->function != f_map) && (CAAR(n)->u.sval.u.efun->function != f_filter)) { /* efuns typically don't access object variables. */
1856:
} { struct svalue sv;
-
sv
.type
=
T_TYPE
;
-
sv.subtype =
0
;
-
sv.u.
type
=
n->type;
+
SET_SVAL(
sv
,
T_TYPE
,
0
,
type
,
n->type
)
;
tmp1 = store_constant(&sv, 0, n->name); emit1(F_CONSTANT, DO_NOT_WARN((INT32)tmp1)); }
1874:
if (runtime_options & RUNTIME_CHECK_TYPES) { { struct svalue sv;
-
sv
.type
=
T_TYPE
;
-
sv.subtype =
0
;
-
sv.u.
type
=
n->type;
+
SET_SVAL(
sv
,
T_TYPE
,
0
,
type
,
n->type
)
;
tmp1 = store_constant(&sv, 0, n->name); emit1(F_CONSTANT, DO_NOT_WARN((INT32)tmp1)); }
1893:
case F_APPLY: if(CAR(n)->token == F_CONSTANT) {
-
if(CAR(n)->u.sval
.type
== T_FUNCTION)
+
if(
TYPEOF(
CAR(n)->u.sval
)
== T_FUNCTION)
{
-
if(CAR(n)->u.sval
.subtype
== FUNCTION_BUILTIN) /* driver fun? */
+
if(
SUBTYPEOF(
CAR(n)->u.sval
)
== FUNCTION_BUILTIN) /* driver fun? */
{ if(!CAR(n)->u.sval.u.efun->docode || !CAR(n)->u.sval.u.efun->docode(n))
1924:
return 1; }else{ if(CAR(n)->u.sval.u.object == Pike_compiler->fake_object)
-
return do_lfun_call(CAR(n)->u.sval
.subtype
, CDR(n));
+
return do_lfun_call(
SUBTYPEOF(
CAR(n)->u.sval
)
, CDR(n));
} }
1982:
{ yyerror("No call_function efun."); }else{
-
if(foo->u.sval
.type
== T_FUNCTION &&
-
foo->u.sval
.subtype
== FUNCTION_BUILTIN &&
+
if(
TYPEOF(
foo->u.sval
)
== T_FUNCTION &&
+
SUBTYPEOF(
foo->u.sval
)
== FUNCTION_BUILTIN &&
foo->u.sval.u.efun->function == f_call_function) { emit0(F_CALL_FUNCTION);
2460:
return 2; case F_ARROW:
-
if(CDR(n)->token != F_CONSTANT || CDR(n)->u.sval
.type
!=T_STRING)
+
if(CDR(n)->token != F_CONSTANT ||
TYPEOF(
CDR(n)->u.sval
)
!=
T_STRING)
Pike_fatal("Bugg in F_ARROW, index not string.\n"); if(flags & WANT_LVALUE) {
2525:
return DO_NOT_WARN((INT32)tmp1); case F_CONSTANT:
-
switch(n->u.sval
.type
)
+
switch(
TYPEOF(
n->u.sval)
)
{ case T_INT:
-
if(!n->u.sval.u.integer && n->u.sval
.subtype
==NUMBER_UNDEFINED)
+
if(!n->u.sval.u.integer &&
SUBTYPEOF(
n->u.sval
)
==
NUMBER_UNDEFINED)
{ emit0(F_UNDEFINED); }else{
2556:
return 1; case T_FUNCTION:
-
if(n->u.sval
.subtype
!=FUNCTION_BUILTIN)
+
if(
SUBTYPEOF(
n->u.sval
)
!=
FUNCTION_BUILTIN)
{ if(n->u.sval.u.object == Pike_compiler->fake_object) { /* When does this occur? /mast */
-
emit1(F_GLOBAL,n->u.sval
.subtype
);
+
emit1(F_GLOBAL,
SUBTYPEOF(
n->u.sval)
)
;
return 1; }
2584:
x++; } #endif
-
emit2(F_EXTERNAL, n->u.sval
.subtype
, x);
+
emit2(F_EXTERNAL,
SUBTYPEOF(
n->u.sval
)
, x);
Pike_compiler->new_program->flags |= PROGRAM_USES_PARENT | PROGRAM_NEEDS_PARENT; return 1;
2593:
/* FALL_THROUGH */ default: #ifdef PIKE_DEBUG
-
if((n->u.sval
.type
== T_OBJECT) &&
+
if((
TYPEOF(
n->u.sval
)
== T_OBJECT) &&
(n->u.sval.u.object->next == n->u.sval.u.object)) Pike_fatal("Internal error: Pointer to parent cannot be a compile time constant!\n"); #endif
2621:
{ if(flags & DO_NOT_COPY_TOPLEVEL) {
-
switch(n->u.sval
.type
)
+
switch(
TYPEOF(
n->u.sval)
)
{ case T_ARRAY: if(array_fix_type_field(n->u.sval.u.array) & BIT_COMPLEX)