--- a/libpurple/protocols/gg/lib/deflate.c Sun Mar 02 10:34:51 2014 +0100 +++ b/libpurple/protocols/gg/lib/deflate.c Fri Mar 07 23:17:08 2014 +0100 @@ -28,6 +28,7 @@ #include <string.h> #include "libgadu.h" +#include "internal.h" #include "deflate.h" #ifdef GG_CONFIG_HAVE_ZLIB @@ -37,7 +38,7 @@ /** * \internal Kompresuje dane wejściowe algorytmem Deflate z najwyższym * stopniem kompresji, tak samo jak oryginalny klient. - * + * * Wynik funkcji należy zwolnić za pomocą \c free. * * \param in Ciąg znaków do skompresowania, zakończony \c \\0 @@ -73,7 +74,8 @@ out = malloc(out_len); if (out == NULL) { - gg_debug(GG_DEBUG_MISC, "// gg_deflate() not enough memory for output data (%d)\n", out_len); + gg_debug(GG_DEBUG_MISC, "// gg_deflate() not enough memory for " + "output data (%" GG_SIZE_FMT ")\n", out_len); goto fail; } @@ -82,27 +84,32 @@ for (;;) { ret = deflate(&strm, Z_FINISH); - + if (ret == Z_STREAM_END) break; - + /* raczej nie powinno się zdarzyć przy Z_FINISH i out_len == deflateBound(), * ale dokumentacja zlib nie wyklucza takiej możliwości */ if (ret == Z_OK) { out_len *= 2; out2 = realloc(out, out_len); - + if (out2 == NULL) { - gg_debug(GG_DEBUG_MISC, "// gg_deflate() not enough memory for output data (%d)\n", out_len); + gg_debug(GG_DEBUG_MISC, "// gg_deflate() not " + "enough memory for output data (%" + GG_SIZE_FMT ")\n", out_len); goto fail; } - + out = out2; - + strm.avail_out = out_len / 2; strm.next_out = out + out_len / 2; } else { - gg_debug(GG_DEBUG_MISC, "// gg_deflate() deflate() failed (ret=%d, msg=%s)\n", ret, strm.msg != NULL ? strm.msg : "no error message provided"); + gg_debug(GG_DEBUG_MISC, "// gg_deflate() deflate() " + "failed (ret=%d, msg=%s)\n", ret, + strm.msg != NULL ? strm.msg : + "no error message provided"); goto fail; } } @@ -111,7 +118,8 @@ out2 = realloc(out, out_len); if (out2 == NULL) { - gg_debug(GG_DEBUG_MISC, "// gg_deflate() not enough memory for output data (%d)\n", out_len); + gg_debug(GG_DEBUG_MISC, "// gg_deflate() not enough memory for " + "output data (%" GG_SIZE_FMT ")\n", out_len); goto fail; } @@ -168,14 +176,15 @@ do { out_len *= 2; out2 = realloc(out, out_len); - + if (out2 == NULL) { - gg_debug(GG_DEBUG_MISC, "// gg_inflate() not enough memory for output data (%d)\n", out_len); + gg_debug(GG_DEBUG_MISC, "// gg_inflate() not enough " + "memory for output data (%" GG_SIZE_FMT ")\n", out_len); goto fail; } - + out = out2; - + if (first) { strm.avail_out = out_len; strm.next_out = (unsigned char*) out; @@ -183,14 +192,17 @@ strm.avail_out = out_len / 2; strm.next_out = (unsigned char*) out + out_len / 2; } - + ret = inflate(&strm, Z_NO_FLUSH); - + if (ret != Z_OK && ret != Z_STREAM_END) { - gg_debug(GG_DEBUG_MISC, "// gg_inflate() inflate() failed (ret=%d, msg=%s)\n", ret, strm.msg != NULL ? strm.msg : "no error message provided"); + gg_debug(GG_DEBUG_MISC, "// gg_inflate() inflate() " + "failed (ret=%d, msg=%s)\n", ret, + strm.msg != NULL ? strm.msg : + "no error message provided"); goto fail; } - + first = 0; } while (ret != Z_STREAM_END); @@ -199,7 +211,8 @@ out2 = realloc(out, out_len); if (out2 == NULL) { - gg_debug(GG_DEBUG_MISC, "// gg_inflate() not enough memory for output data (%d)\n", out_len); + gg_debug(GG_DEBUG_MISC, "// gg_inflate() not enough memory for " + "output data (%" GG_SIZE_FMT ")\n", out_len); goto fail; } @@ -216,4 +229,3 @@ #endif return NULL; } -