@@ -262,81 +262,109 @@ private void EnsureState(State requiredState)
262262 }
263263
264264
265- public ErrorCode DeflateInit2_ ( CompressionLevel level , int windowBits , int memLevel , CompressionStrategy strategy )
265+ public unsafe ErrorCode DeflateInit2_ ( CompressionLevel level , int windowBits , int memLevel , CompressionStrategy strategy )
266266 {
267267 EnsureNotDisposed ( ) ;
268268 EnsureState ( State . NotInitialized ) ;
269269
270- ErrorCode errC = Interop . zlib . DeflateInit2_ ( ref _zStream , level , CompressionMethod . Deflated , windowBits , memLevel , strategy ) ;
271- _initializationState = State . InitializedForDeflate ;
270+ fixed ( ZStream * stream = & _zStream )
271+ {
272+ ErrorCode errC = Interop . zlib . DeflateInit2_ ( stream , level , CompressionMethod . Deflated , windowBits , memLevel , strategy ) ;
273+ _initializationState = State . InitializedForDeflate ;
272274
273- return errC ;
275+ return errC ;
276+ }
274277 }
275278
276279
277- public ErrorCode Deflate ( FlushCode flush )
280+ public unsafe ErrorCode Deflate ( FlushCode flush )
278281 {
279282 EnsureNotDisposed ( ) ;
280283 EnsureState ( State . InitializedForDeflate ) ;
281- return Interop . zlib . Deflate ( ref _zStream , flush ) ;
284+
285+ fixed ( ZStream * stream = & _zStream )
286+ {
287+ return Interop . zlib . Deflate ( stream , flush ) ;
288+ }
282289 }
283290
284291
285- public ErrorCode DeflateReset ( )
292+ public unsafe ErrorCode DeflateReset ( )
286293 {
287294 EnsureNotDisposed ( ) ;
288295 EnsureState ( State . InitializedForDeflate ) ;
289- return Interop . zlib . DeflateReset ( ref _zStream ) ;
296+
297+ fixed ( ZStream * stream = & _zStream )
298+ {
299+ return Interop . zlib . DeflateReset ( stream ) ;
300+ }
290301 }
291302
292- public ErrorCode DeflateEnd ( )
303+ public unsafe ErrorCode DeflateEnd ( )
293304 {
294305 EnsureNotDisposed ( ) ;
295306 EnsureState ( State . InitializedForDeflate ) ;
296307
297- ErrorCode errC = Interop . zlib . DeflateEnd ( ref _zStream ) ;
298- _initializationState = State . Disposed ;
308+ fixed ( ZStream * stream = & _zStream )
309+ {
310+ ErrorCode errC = Interop . zlib . DeflateEnd ( stream ) ;
311+ _initializationState = State . Disposed ;
299312
300- return errC ;
313+ return errC ;
314+ }
301315 }
302316
303317
304- public ErrorCode InflateInit2_ ( int windowBits )
318+ public unsafe ErrorCode InflateInit2_ ( int windowBits )
305319 {
306320 EnsureNotDisposed ( ) ;
307321 EnsureState ( State . NotInitialized ) ;
308322
309- ErrorCode errC = Interop . zlib . InflateInit2_ ( ref _zStream , windowBits ) ;
310- _initializationState = State . InitializedForInflate ;
323+ fixed ( ZStream * stream = & _zStream )
324+ {
325+ ErrorCode errC = Interop . zlib . InflateInit2_ ( stream , windowBits ) ;
326+ _initializationState = State . InitializedForInflate ;
311327
312- return errC ;
328+ return errC ;
329+ }
313330 }
314331
315332
316- public ErrorCode Inflate ( FlushCode flush )
333+ public unsafe ErrorCode Inflate ( FlushCode flush )
317334 {
318335 EnsureNotDisposed ( ) ;
319336 EnsureState ( State . InitializedForInflate ) ;
320- return Interop . zlib . Inflate ( ref _zStream , flush ) ;
337+
338+ fixed ( ZStream * stream = & _zStream )
339+ {
340+ return Interop . zlib . Inflate ( stream , flush ) ;
341+ }
321342 }
322343
323344
324- public ErrorCode InflateReset ( )
345+ public unsafe ErrorCode InflateReset ( )
325346 {
326347 EnsureNotDisposed ( ) ;
327348 EnsureState ( State . InitializedForInflate ) ;
328- return Interop . zlib . InflateReset ( ref _zStream ) ;
349+
350+ fixed ( ZStream * stream = & _zStream )
351+ {
352+ return Interop . zlib . InflateReset ( stream ) ;
353+ }
329354 }
330355
331- public ErrorCode InflateEnd ( )
356+ public unsafe ErrorCode InflateEnd ( )
332357 {
333358 EnsureNotDisposed ( ) ;
334359 EnsureState ( State . InitializedForInflate ) ;
335360
336- ErrorCode errC = Interop . zlib . InflateEnd ( ref _zStream ) ;
337- _initializationState = State . Disposed ;
361+ fixed ( ZStream * stream = & _zStream )
362+ {
363+ ErrorCode errC = Interop . zlib . InflateEnd ( stream ) ;
364+ _initializationState = State . Disposed ;
338365
339- return errC ;
366+ return errC ;
367+ }
340368 }
341369
342370 // This can work even after XxflateEnd().
0 commit comments