summaryrefslogtreecommitdiff
path: root/upb/table.c
diff options
context:
space:
mode:
Diffstat (limited to 'upb/table.c')
-rw-r--r--upb/table.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/upb/table.c b/upb/table.c
index 4239c6f..128f607 100644
--- a/upb/table.c
+++ b/upb/table.c
@@ -381,6 +381,7 @@ void upb_strtable_next(upb_strtable_iter *i) {
}
bool upb_strtable_done(const upb_strtable_iter *i) {
+ if (!i->t) return true;
return i->index >= upb_table_size(&i->t->t) ||
upb_tabent_isempty(str_tabent(i));
}
@@ -403,6 +404,7 @@ upb_value upb_strtable_iter_value(const upb_strtable_iter *i) {
}
void upb_strtable_iter_setdone(upb_strtable_iter *i) {
+ i->t = NULL;
i->index = SIZE_MAX;
}
@@ -692,6 +694,7 @@ void upb_inttable_next(upb_inttable_iter *iter) {
}
bool upb_inttable_done(const upb_inttable_iter *i) {
+ if (!i->t) return true;
if (i->array_part) {
return i->index >= i->t->array_size ||
!upb_arrhas(int_arrent(i));
@@ -714,6 +717,7 @@ upb_value upb_inttable_iter_value(const upb_inttable_iter *i) {
}
void upb_inttable_iter_setdone(upb_inttable_iter *i) {
+ i->t = NULL;
i->index = SIZE_MAX;
i->array_part = false;
}
@@ -726,7 +730,7 @@ bool upb_inttable_iter_isequal(const upb_inttable_iter *i1,
i1->array_part == i2->array_part;
}
-#ifdef UPB_UNALIGNED_READS_OK
+#if defined(UPB_UNALIGNED_READS_OK) || defined(__s390x__)
/* -----------------------------------------------------------------------------
* MurmurHash2, by Austin Appleby (released as public domain).
* Reformatted and C99-ified by Joshua Haberman.
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback