[Scummvm-cvs-logs] SF.net SVN: scummvm: [26093] scummvm/trunk/backends/saves/compressed/ compressed-saves.cpp

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Sun Mar 11 17:00:39 CET 2007


Revision: 26093
          http://scummvm.svn.sourceforge.net/scummvm/?rev=26093&view=rev
Author:   fingolfin
Date:     2007-03-11 09:00:38 -0700 (Sun, 11 Mar 2007)

Log Message:
-----------
Reenabled window bit flags for automatica gzip header detection, and documented which zlib version introduced the feature. Also enforce that zlib version

Modified Paths:
--------------
    scummvm/trunk/backends/saves/compressed/compressed-saves.cpp

Modified: scummvm/trunk/backends/saves/compressed/compressed-saves.cpp
===================================================================
--- scummvm/trunk/backends/saves/compressed/compressed-saves.cpp	2007-03-11 15:37:27 UTC (rev 26092)
+++ scummvm/trunk/backends/saves/compressed/compressed-saves.cpp	2007-03-11 16:00:38 UTC (rev 26093)
@@ -28,6 +28,9 @@
 #if defined(USE_ZLIB)
 #include <zlib.h>
 
+#if ZLIB_VERNUM < 0x1204
+#error Version 1.2.0.4 or newer of zlib is required for this code
+#endif
 
 /**
  * A simple wrapper class which can be used to wrap around an arbitrary
@@ -76,8 +79,10 @@
 		
 		// Adding 32 to windowBits indicates to zlib that it is supposed to
 		// automatically detect whether gzip or zlib headers are used for
-		// the compressed file.
-		_zlibErr = inflateInit2(&_stream, MAX_WBITS);
+		// the compressed file. This feature was added in zlib 1.2.0.4,
+		// released 10 August 2003.
+		// Note: This is *crucial* for savegame compatibility, do *not* remove!
+		_zlibErr = inflateInit2(&_stream, MAX_WBITS + 32);
 		if (_zlibErr != Z_OK)
 			return;
 		
@@ -196,12 +201,14 @@
 		_stream.zfree = Z_NULL;
 		_stream.opaque = Z_NULL;
 		
-		// adding 16 to windowBits indicates to zlib that it is supposed to
-		// write gzip headers
+		// Adding 16 to windowBits indicates to zlib that it is supposed to
+		// write gzip headers. This feature was added in zlib 1.2.0.4,
+		// released 10 August 2003.
+		// Note: This is *crucial* for savegame compatibility, do *not* remove!
 		_zlibErr = deflateInit2(&_stream,
 		                 Z_DEFAULT_COMPRESSION,
 		                 Z_DEFLATED,
-		                 MAX_WBITS,
+		                 MAX_WBITS + 16,
 		                 8,
                          Z_DEFAULT_STRATEGY);
 		assert(_zlibErr == Z_OK);


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list