]> Cypherpunks repositories - gostls13.git/commit
image/gif: avoid setting defers in the decode loop
authorArtyom Pervukhin <artyom.pervukhin@gmail.com>
Thu, 12 Oct 2017 19:03:13 +0000 (22:03 +0300)
committerNigel Tao <nigeltao@golang.org>
Mon, 23 Oct 2017 22:59:18 +0000 (22:59 +0000)
commit54fa10a98e7e18063a8e3d36637e9921b8b9aabc
treef05b680ffc3c1628b5fb636942a87a937a4ba1f0
parent0c5b00d0cd41a9f1662f6cc306bb74f70e8abd08
image/gif: avoid setting defers in the decode loop

decoder.decode() was defering close of lzw.decoders created for each
frame in a loop, thus increasing heap usage (referenced object + defered
function) until decode() returns. Memory increased proportionally to the
number of frames. Fix this by moving the sImageDescriptor case block
into its own method.

Fixes #22237

Change-Id: I819617ea7e539e13c04bc11112f339645391ddb9
Reviewed-on: https://go-review.googlesource.com/70370
Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Emmanuel Odeke <emm.odeke@gmail.com>
src/image/gif/reader.go
src/image/gif/reader_test.go