]> Repositorios git - scryer-prolog.git/commitdiff
do length check in PartialString::range_from (#412)
authorMark Thom <[email protected]>
Tue, 28 Apr 2020 23:20:14 +0000 (17:20 -0600)
committerMark Thom <[email protected]>
Tue, 28 Apr 2020 23:20:14 +0000 (17:20 -0600)
src/prolog/machine/partial_string.rs

index ea36d409c838b3f1d609d7528a47d486687b447f..2d821ac4aff2e8e455ccad970fb23e42791b7c3c 100644 (file)
@@ -202,7 +202,11 @@ impl PartialString {
 
     #[inline]
     pub fn range_from(&self, index: RangeFrom<usize>) -> PStrIter {
-        PStrIter::from(self.buf, self.len - '\u{0}'.len_utf8(), index.start)
+        if self.len >= '\u{0}'.len_utf8() {
+            PStrIter::from(self.buf, self.len - '\u{0}'.len_utf8(), index.start)
+        } else {
+            PStrIter::from(self.buf, 0, 0)
+        }
     }
 
     #[inline]