diff options
author | Joseph-Eugene Winzer | 2017-07-23 03:00:02 +0200 |
---|---|---|
committer | Thierry Crozat | 2018-01-23 00:00:12 +0000 |
commit | aa447e81bc378ea327a2d3f943997416cd118039 (patch) | |
tree | d50b00d056070d33229036d72ebff505f9c6f5ad /engines/supernova | |
parent | 83523ebbdc837290e48f9b22f23ac2e83e1510a4 (diff) | |
download | scummvm-rg350-aa447e81bc378ea327a2d3f943997416cd118039.tar.gz scummvm-rg350-aa447e81bc378ea327a2d3f943997416cd118039.tar.bz2 scummvm-rg350-aa447e81bc378ea327a2d3f943997416cd118039.zip |
SUPERNOVA: Initializes clickField.next with 0
It seems it is possible that some objects or subsequent click fields
'pointed' to by next are outside of the initialized range and are
expected to be zeroed. This would explain the non-deterministic freezes
I experienced.
Diffstat (limited to 'engines/supernova')
-rw-r--r-- | engines/supernova/graphics.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/engines/supernova/graphics.cpp b/engines/supernova/graphics.cpp index d28c60118c..df3b706d10 100644 --- a/engines/supernova/graphics.cpp +++ b/engines/supernova/graphics.cpp @@ -98,6 +98,9 @@ bool MSNImageDecoder::loadStream(Common::SeekableReadStream &stream) { } _numClickFields = stream.readByte(); + for (int i = 0; i < kMaxClickFields; ++i) { + _clickField[i].next = 0; + } for (int i = 0; i < _numClickFields; ++i) { _clickField[i].x1 = stream.readUint16LE(); _clickField[i].x2 = stream.readUint16LE(); |