1 /* Parse tree node implementation */
10 node
*n
= PyMem_NEW(node
, 1);
21 #define XXX 3 /* Node alignment factor to speed up realloc */
22 #define XXXROUNDUP(n) ((n) == 1 ? 1 : ((n) + XXX - 1) / XXX * XXX)
25 PyNode_AddChild(register node
*n1
, int type
, char *str
, int lineno
)
27 register int nch
= n1
->n_nchildren
;
28 register int nch1
= nch
+1;
30 if (nch
== INT_MAX
|| nch
< 0)
32 if (XXXROUNDUP(nch
) < nch1
) {
34 nch1
= XXXROUNDUP(nch1
);
35 PyMem_RESIZE(n
, node
, nch1
);
40 n
= &n1
->n_child
[n1
->n_nchildren
++];
50 static void freechildren(node
*);
66 for (i
= NCH(n
); --i
>= 0; )
67 freechildren(CHILD(n
, i
));
68 if (n
->n_child
!= NULL
)
69 PyMem_DEL(n
->n_child
);