- m_inflate->zalloc = (alloc_func)0;
- m_inflate->zfree = (free_func)0;
- m_inflate->opaque = (voidpf)0;
- m_inflate->avail_in = 0;
- m_inflate->next_in = NULL;
- m_inflate->next_out = NULL;
+ memset(m_inflate, 0, sizeof(z_stream_s));
+
+ wxASSERT((flags & ~(wxZLIB_ZLIB | wxZLIB_GZIP)) == 0);
+
+ // when autodetecting between gzip & zlib, silently drop gzip flag
+ // if the version of zlib doesn't support it
+ if (flags == (wxZLIB_ZLIB | wxZLIB_GZIP)
+ && strcmp(zlib_version, "1.2.") < 0)
+ flags &= ~wxZLIB_GZIP;