• R/O
  • SSH

quipu: Commit

quipu mercurial repository


Commit MetaInfo

Revisióne8bf311b11a48d78c685bbad3bdab50fde7bdb9f (tree)
Tiempo2018-08-17 04:32:25
AutorAgustina Arzille <avarzille@rise...>
CommiterAgustina Arzille

Log Message

Fix table iterators

Cambiar Resumen

Diferencia incremental

diff -r aa6e37f2dc8e -r e8bf311b11a4 table.cpp
--- a/table.cpp Thu Aug 16 15:41:21 2018 -0300
+++ b/table.cpp Thu Aug 16 16:32:25 2018 -0300
@@ -605,7 +605,7 @@
605605 }
606606
607607 table::iterator::iterator (interpreter *interp, object table) :
608- key (interp, intobj (0)), val (interp, intobj (0)),
608+ key (interp, UNBOUND), val (interp, UNBOUND),
609609 vec (interp, as_table(table)->vector), idx (TABVEC_OVERHEAD)
610610 {
611611 this->adv ();
@@ -613,11 +613,13 @@
613613
614614 bool table::iterator::valid ()
615615 {
616- return (this->idx < as_array(*this->vec)->len);
616+ return (*this->key != UNBOUND);
617617 }
618618
619619 void table::iterator::adv ()
620620 {
621+ *this->key = UNBOUND;
622+
621623 for (array *vecp = as_array (*this->vec); this->idx < vecp->len; )
622624 {
623625 *this->key = vecp->data[idx + 0];
Show on old repository browser