From: Mark Thom Date: Tue, 28 Apr 2020 23:20:14 +0000 (-0600) Subject: do length check in PartialString::range_from (#412) X-Git-Tag: v0.8.123~101 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=eefd36b50d5bcc1b43818d9ce49de101afb40dcd;p=scryer-prolog.git do length check in PartialString::range_from (#412) --- diff --git a/src/prolog/machine/partial_string.rs b/src/prolog/machine/partial_string.rs index ea36d409..2d821ac4 100644 --- a/src/prolog/machine/partial_string.rs +++ b/src/prolog/machine/partial_string.rs @@ -202,7 +202,11 @@ impl PartialString { #[inline] pub fn range_from(&self, index: RangeFrom) -> 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]