aboutsummaryrefslogtreecommitdiff
path: root/src/compress
diff options
context:
space:
mode:
authorNigel Tao <nigeltao@golang.org>2019-08-23 16:28:23 +1000
committerNigel Tao <nigeltao@golang.org>2019-09-12 07:45:53 +0000
commit396d62533013a39b527db4b02195e816e36dbf9a (patch)
treed52ff1572aaac3001b8dd06da91a29435b0822e0 /src/compress
parent3f0437e175d66a9c3d9ff1b201c4bb1b504dbfa7 (diff)
downloadgo-396d62533013a39b527db4b02195e816e36dbf9a.tar.gz
go-396d62533013a39b527db4b02195e816e36dbf9a.zip
compress/lzw: fix comment re high-code invariant
The listed invariant, while technically true, was misleading, and the invariant can be tightened. We never actually get to (d.hi == d.overflow), due to the "d.hi--" line in the decoder.decode method. This is a comment-only commit, changing the comment to match the code. A follow-up commit could restore the comment, changing the code to match the original intented invariant. But the first step is to have the comment and the code say the same thing. Change-Id: Ifc9f78d5060454fc107af9be298026bf3043d400 Reviewed-on: https://go-review.googlesource.com/c/go/+/191358 Reviewed-by: Daniel Martí <mvdan@mvdan.cc> Reviewed-by: Bryan C. Mills <bcmills@google.com> Run-TryBot: Daniel Martí <mvdan@mvdan.cc> TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src/compress')
-rw-r--r--src/compress/lzw/reader.go5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/compress/lzw/reader.go b/src/compress/lzw/reader.go
index 1be52d55e4..912b7d3f40 100644
--- a/src/compress/lzw/reader.go
+++ b/src/compress/lzw/reader.go
@@ -63,8 +63,7 @@ type decoder struct {
//
// last is the most recently seen code, or decoderInvalidCode.
//
- // An invariant is that
- // (hi < overflow) || (hi == overflow && last == decoderInvalidCode)
+ // An invariant is that hi < overflow.
clear, eof, hi, overflow, last uint16
// Each code c in [lo, hi] expands to two or more bytes. For c != hi:
@@ -203,7 +202,7 @@ loop:
if d.width == maxWidth {
d.last = decoderInvalidCode
// Undo the d.hi++ a few lines above, so that (1) we maintain
- // the invariant that d.hi <= d.overflow, and (2) d.hi does not
+ // the invariant that d.hi < d.overflow, and (2) d.hi does not
// eventually overflow a uint16.
d.hi--
} else {