[iter] Fix filter rewinding
authorDavid Corbett <corbett.dav@husky.neu.edu>
Sat, 11 May 2019 15:38:06 +0000 (11:38 -0400)
committerBehdad Esfahbod <behdad@behdad.org>
Sat, 11 May 2019 18:52:40 +0000 (11:52 -0700)
src/hb-iter.hh

index 77edd1a..1b5c427 100644 (file)
@@ -433,7 +433,7 @@ struct hb_filter_iter_t :
   __item_t__ __item__ () const { return *it; }
   bool __more__ () const { return bool (it); }
   void __next__ () { do ++it; while (it && !hb_has (p.get (), hb_get (f.get (), *it))); }
-  void __prev__ () { --it; }
+  void __prev__ () { do --it; while (it && !hb_has (p.get (), hb_get (f.get (), *it))); }
   hb_filter_iter_t __end__ () const { return hb_filter_iter_t (it.end (), p, f); }
   bool operator != (const hb_filter_iter_t& o) const
   { return it != o.it || p != o.p || f != o.f; }