summaryrefslogtreecommitdiff
path: root/upb
diff options
context:
space:
mode:
authorJosh Haberman <jhaberman@gmail.com>2019-01-26 19:49:09 -0800
committerJosh Haberman <jhaberman@gmail.com>2019-01-26 19:49:09 -0800
commit865876895d5a35bfa4f4135b1f545b73fb2faaac (patch)
tree30b69d0632b8d6a6e2e5ba8e18876d883c7df86b /upb
parent0dbbfd1f8041f863f8f4c6ada33c4102520d406f (diff)
Fixed tests and code.
Diffstat (limited to 'upb')
-rw-r--r--upb/table.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/upb/table.c b/upb/table.c
index 4239c6f..10d8322 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;
}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback