summaryrefslogtreecommitdiff
path: root/src/runtime/c/gu/seq.c
diff options
context:
space:
mode:
authorkr.angelov <kr.angelov@gmail.com>2012-06-13 05:49:30 +0000
committerkr.angelov <kr.angelov@gmail.com>2012-06-13 05:49:30 +0000
commit3ad5493758227a3d273dea66061fa254f14c886d (patch)
tree1f6f3219f23b5ba1b21a527858fe19bcf901ebe2 /src/runtime/c/gu/seq.c
parentcc58e2d05f75710f018efd5e026686146e9b4b9d (diff)
Use a separated tag for meta productions in the robust parser. This cleans up the code a lot
Diffstat (limited to 'src/runtime/c/gu/seq.c')
-rw-r--r--src/runtime/c/gu/seq.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/runtime/c/gu/seq.c b/src/runtime/c/gu/seq.c
index fda1be99c..d994d5990 100644
--- a/src/runtime/c/gu/seq.c
+++ b/src/runtime/c/gu/seq.c
@@ -66,7 +66,12 @@ gu_make_buf(size_t elem_size, GuPool* pool)
return buf;
}
-static const GuWord gu_empty_seq[2] = {0, 0};
+static const GuWord gu_empty_seq_[2] = {0, 0};
+
+GuSeq
+gu_empty_seq() {
+ return (GuSeq) { gu_tagged((void*)&gu_empty_seq_[1], 0) };
+}
GuSeq
gu_make_seq(size_t elem_size, size_t length, GuPool* pool)
@@ -76,7 +81,7 @@ gu_make_seq(size_t elem_size, size_t length, GuPool* pool)
void* buf = gu_malloc(pool, size);
return (GuSeq) { gu_tagged(buf, length) };
} else if (size == 0) {
- return (GuSeq) { gu_tagged((void*)&gu_empty_seq[1], 0) };
+ return gu_empty_seq();
} else {
void* buf = gu_malloc_prefixed(pool,
gu_alignof(GuWord),