LCOV - code coverage report
Current view: directory - modules/zlib/src - compress.c (source / functions) Found Hit Coverage
Test: app.info Lines: 23 21 91.3 %
Date: 2012-04-21 Functions: 3 3 100.0 %

       1                 : /* compress.c -- compress a memory buffer
       2                 :  * Copyright (C) 1995-2005 Jean-loup Gailly.
       3                 :  * For conditions of distribution and use, see copyright notice in zlib.h
       4                 :  */
       5                 : 
       6                 : /* @(#) $Id$ */
       7                 : 
       8                 : #define ZLIB_INTERNAL
       9                 : #include "zlib.h"
      10                 : 
      11                 : /* ===========================================================================
      12                 :      Compresses the source buffer into the destination buffer. The level
      13                 :    parameter has the same meaning as in deflateInit.  sourceLen is the byte
      14                 :    length of the source buffer. Upon entry, destLen is the total size of the
      15                 :    destination buffer, which must be at least 0.1% larger than sourceLen plus
      16                 :    12 bytes. Upon exit, destLen is the actual size of the compressed buffer.
      17                 : 
      18                 :      compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough
      19                 :    memory, Z_BUF_ERROR if there was not enough room in the output buffer,
      20                 :    Z_STREAM_ERROR if the level parameter is invalid.
      21                 : */
      22            1164 : int ZEXPORT compress2 (dest, destLen, source, sourceLen, level)
      23                 :     Bytef *dest;
      24                 :     uLongf *destLen;
      25                 :     const Bytef *source;
      26                 :     uLong sourceLen;
      27                 :     int level;
      28                 : {
      29                 :     z_stream stream;
      30                 :     int err;
      31                 : 
      32            1164 :     stream.next_in = (Bytef*)source;
      33            1164 :     stream.avail_in = (uInt)sourceLen;
      34                 : #ifdef MAXSEG_64K
      35                 :     /* Check for source > 64K on 16-bit machine: */
      36                 :     if ((uLong)stream.avail_in != sourceLen) return Z_BUF_ERROR;
      37                 : #endif
      38            1164 :     stream.next_out = dest;
      39            1164 :     stream.avail_out = (uInt)*destLen;
      40            1164 :     if ((uLong)stream.avail_out != *destLen) return Z_BUF_ERROR;
      41                 : 
      42            1164 :     stream.zalloc = (alloc_func)0;
      43            1164 :     stream.zfree = (free_func)0;
      44            1164 :     stream.opaque = (voidpf)0;
      45                 : 
      46            1164 :     err = deflateInit(&stream, level);
      47            1164 :     if (err != Z_OK) return err;
      48                 : 
      49            1164 :     err = deflate(&stream, Z_FINISH);
      50            1164 :     if (err != Z_STREAM_END) {
      51               0 :         deflateEnd(&stream);
      52               0 :         return err == Z_OK ? Z_BUF_ERROR : err;
      53                 :     }
      54            1164 :     *destLen = stream.total_out;
      55                 : 
      56            1164 :     err = deflateEnd(&stream);
      57            1164 :     return err;
      58                 : }
      59                 : 
      60                 : /* ===========================================================================
      61                 :  */
      62            1164 : int ZEXPORT compress (dest, destLen, source, sourceLen)
      63                 :     Bytef *dest;
      64                 :     uLongf *destLen;
      65                 :     const Bytef *source;
      66                 :     uLong sourceLen;
      67                 : {
      68            1164 :     return compress2(dest, destLen, source, sourceLen, Z_DEFAULT_COMPRESSION);
      69                 : }
      70                 : 
      71                 : /* ===========================================================================
      72                 :      If the default memLevel or windowBits for deflateInit() is changed, then
      73                 :    this function needs to be updated.
      74                 :  */
      75            1164 : uLong ZEXPORT compressBound (sourceLen)
      76                 :     uLong sourceLen;
      77                 : {
      78            2328 :     return sourceLen + (sourceLen >> 12) + (sourceLen >> 14) +
      79            1164 :            (sourceLen >> 25) + 13;
      80                 : }

Generated by: LCOV version 1.7