summaryrefslogtreecommitdiffstats
path: root/dimension/common.rules
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@gmail.com>2010-05-08 23:21:48 -0600
committerTavian Barnes <tavianator@gmail.com>2010-05-08 23:21:48 -0600
commit7a21db5914dd7a5666e603d66ed3948b659ba2fc (patch)
treebde8e00a1677ba865adae8a82780d1cc832ece8e /dimension/common.rules
parent152362a57dc7fe9dce830ef69118984f854d6375 (diff)
downloaddimension-7a21db5914dd7a5666e603d66ed3948b659ba2fc.tar.xz
New DMNSN_ARRAY_FOREACH() macro, faster than iterating with dmnsn_array_get().
Diffstat (limited to 'dimension/common.rules')
-rw-r--r--dimension/common.rules16
1 files changed, 6 insertions, 10 deletions
diff --git a/dimension/common.rules b/dimension/common.rules
index 4644627..d897eb3 100644
--- a/dimension/common.rules
+++ b/dimension/common.rules
@@ -152,11 +152,9 @@ OBJECT: FINITE_SOLID_OBJECT
*modifiers = dmnsn_new_astnode(DMNSN_AST_OBJECT_MODIFIERS, @4);
dmnsn_copy_children(*modifiers, orig_modifiers);
- for (size_t i = 0; i < dmnsn_array_size($4.children); ++i) {
- dmnsn_astnode astnode;
- dmnsn_array_get($4.children, i, &astnode);
- ++*astnode.refcount;
- dmnsn_array_push(modifiers->children, &astnode);
+ DMNSN_ARRAY_FOREACH (dmnsn_astnode *, astnode, $4.children) {
+ ++*astnode->refcount;
+ dmnsn_array_push(modifiers->children, astnode);
}
dmnsn_delete_astnode($4);
break;
@@ -185,11 +183,9 @@ OBJECT: FINITE_SOLID_OBJECT
dmnsn_array_size($$.children) - 1,
&modifiers);
- for (size_t i = 0; i < dmnsn_array_size($4.children); ++i) {
- dmnsn_astnode astnode;
- dmnsn_array_get($4.children, i, &astnode);
- ++*astnode.refcount;
- dmnsn_array_push(modifiers.children, &astnode);
+ DMNSN_ARRAY_FOREACH (dmnsn_astnode *, astnode, $4.children) {
+ ++*astnode->refcount;
+ dmnsn_array_push(modifiers.children, astnode);
}
dmnsn_delete_astnode($4);