]> git.saurik.com Git - wxWidgets.git/blobdiff - src/zlib/infback.c
check that the version of __sync_sub_and_fetch that returns a value is supported...
[wxWidgets.git] / src / zlib / infback.c
index 110b03b857f26c3e76793a687ca6d8f55890a1a8..455dbc9ee8432fcb01ecf425b9df81d22471e17c 100644 (file)
@@ -1,5 +1,5 @@
 /* infback.c -- inflate using a call-back interface
 /* infback.c -- inflate using a call-back interface
- * Copyright (C) 1995-2003 Mark Adler
+ * Copyright (C) 1995-2005 Mark Adler
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
 
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
 
@@ -26,7 +26,7 @@ local void fixedtables OF((struct inflate_state FAR *state));
    window and output buffer that is 2**windowBits bytes.
  */
 int ZEXPORT inflateBackInit_(strm, windowBits, window, version, stream_size)
    window and output buffer that is 2**windowBits bytes.
  */
 int ZEXPORT inflateBackInit_(strm, windowBits, window, version, stream_size)
-z_stream FAR *strm;
+z_streamstrm;
 int windowBits;
 unsigned char FAR *window;
 const char *version;
 int windowBits;
 unsigned char FAR *window;
 const char *version;
@@ -50,7 +50,8 @@ int stream_size;
                                                sizeof(struct inflate_state));
     if (state == Z_NULL) return Z_MEM_ERROR;
     Tracev((stderr, "inflate: allocated\n"));
                                                sizeof(struct inflate_state));
     if (state == Z_NULL) return Z_MEM_ERROR;
     Tracev((stderr, "inflate: allocated\n"));
-    strm->state = (voidpf)state;
+    strm->state = (struct internal_state FAR *)state;
+    state->dmax = 32768U;
     state->wbits = windowBits;
     state->wsize = 1U << windowBits;
     state->window = window;
     state->wbits = windowBits;
     state->wsize = 1U << windowBits;
     state->window = window;
@@ -238,7 +239,7 @@ struct inflate_state FAR *state;
    are not correct, i.e. strm is Z_NULL or the state was not initialized.
  */
 int ZEXPORT inflateBack(strm, in, in_desc, out, out_desc)
    are not correct, i.e. strm is Z_NULL or the state was not initialized.
  */
 int ZEXPORT inflateBack(strm, in, in_desc, out, out_desc)
-z_stream FAR *strm;
+z_streamstrm;
 in_func in;
 void FAR *in_desc;
 out_func out;
 in_func in;
 void FAR *in_desc;
 out_func out;
@@ -434,6 +435,9 @@ void FAR *out_desc;
                 }
             }
 
                 }
             }
 
+            /* handle error breaks in while */
+            if (state->mode == BAD) break;
+
             /* build code tables */
             state->next = state->codes;
             state->lencode = (code const FAR *)(state->next);
             /* build code tables */
             state->next = state->codes;
             state->lencode = (code const FAR *)(state->next);
@@ -608,7 +612,7 @@ void FAR *out_desc;
 }
 
 int ZEXPORT inflateBackEnd(strm)
 }
 
 int ZEXPORT inflateBackEnd(strm)
-z_stream FAR *strm;
+z_streamstrm;
 {
     if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0)
         return Z_STREAM_ERROR;
 {
     if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0)
         return Z_STREAM_ERROR;