diff options
Diffstat (limited to 'app/lzo/src/lzo1b_c.ch')
-rw-r--r-- | app/lzo/src/lzo1b_c.ch | 273 |
1 files changed, 0 insertions, 273 deletions
diff --git a/app/lzo/src/lzo1b_c.ch b/app/lzo/src/lzo1b_c.ch deleted file mode 100644 index a17e3adb..00000000 --- a/app/lzo/src/lzo1b_c.ch +++ /dev/null @@ -1,273 +0,0 @@ -/* lzo1b_c.ch -- implementation of the LZO1B compression algorithm - - This file is part of the LZO real-time data compression library. - - Copyright (C) 2011 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 2010 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 2009 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer - Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer - All Rights Reserved. - - The LZO library is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of - the License, or (at your option) any later version. - - The LZO library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with the LZO library; see the file COPYING. - If not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - - Markus F.X.J. Oberhumer - <markus@oberhumer.com> - http://www.oberhumer.com/opensource/lzo/ - */ - - - -/*********************************************************************** -// -************************************************************************/ - -#if !defined(LZO_HAVE_R1) && !defined(LZO_NO_R1) -# define LZO_HAVE_R1 1 -#endif - -#if !defined(LZO_HAVE_M3) && !defined(LZO_NO_M3) -# if (M3O_BITS < 8) -# define LZO_HAVE_M3 1 -# endif -#endif - - -#define MI /*empty*/ -#define SI MI -#if (DD_BITS > 0) -#define DI ++ii; DVAL_NEXT(dv,ii); UPDATE_D(dict,drun,dv,ii,in); MI -#define XI assert(ii < ip); ii = ip; DVAL_FIRST(dv,(ip)); -#else -#define DI ++ii; DINDEX1(dindex,ii); UPDATE_I(dict,0,dindex,ii,in); MI -#define XI assert(ii < ip); ii = ip; -#endif - - -/*********************************************************************** -// compress a block of data. -// -// I really apologize for this spaghetti code. -************************************************************************/ - -LZO_PRIVATE(int) -do_compress ( const lzo_bytep in , lzo_uint in_len, - lzo_bytep out, lzo_uintp out_len, - lzo_voidp wrkmem ) -{ - register const lzo_bytep ip; -#if (DD_BITS > 0) -#if defined(__LZO_HASH_INCREMENTAL) - lzo_xint dv; -#endif - unsigned drun = 0; -#endif - lzo_bytep op; - const lzo_bytep const in_end = in + in_len; - const lzo_bytep const ip_end = in + in_len - MIN_LOOKAHEAD; - const lzo_bytep ii; -#if defined(LZO_HAVE_R1) - const lzo_bytep r1 = ip_end; /* pointer for R1 match (none yet) */ -#endif -#if defined(LZO_HAVE_M3) - lzo_bytep m3 = out + 1; /* pointer after last m3/m4 match */ -#endif - - lzo_dict_p const dict = (lzo_dict_p) wrkmem; - - -#if (LZO_COLLECT_STATS) - lzo_stats->r_bits = R_BITS; - lzo_stats->m3o_bits = M3O_BITS; - lzo_stats->dd_bits = DD_BITS; - lzo_stats->clevel = CLEVEL; - lzo_stats->d_bits = D_BITS; - lzo_stats->min_lookahead = MIN_LOOKAHEAD; - lzo_stats->max_lookbehind = MAX_LOOKBEHIND; - lzo_stats->compress_id = LZO_CPP_MACRO_EXPAND(COMPRESS_ID); -#endif - - /* init dictionary */ -#if (LZO_DETERMINISTIC) - BZERO8_PTR(wrkmem,sizeof(lzo_dict_t),D_SIZE); -#endif - - - op = out; - ip = in; - ii = ip; /* point to start of current literal run */ - - -#if (DD_BITS > 0) - DVAL_FIRST(dv,ip); - UPDATE_D(dict,drun,dv,ip,in); - ip++; - DVAL_NEXT(dv,ip); -#else - ip++; -#endif - - assert(ip < ip_end); - for (;;) - { - const lzo_bytep m_pos; -#if !defined(NDEBUG) - const lzo_bytep m_pos_sav = NULL; -#endif - LZO_DEFINE_UNINITIALIZED_VAR(lzo_uint, m_off, 0); -#if (DD_BITS == 0) - lzo_uint dindex; -#endif - lzo_uint m_len; - - -/*********************************************************************** -// search for a match -************************************************************************/ - -#if !defined(LZO_SEARCH_MATCH_INCLUDE_FILE) -# define LZO_SEARCH_MATCH_INCLUDE_FILE "lzo1b_sm.ch" -#endif - -#include LZO_SEARCH_MATCH_INCLUDE_FILE - - -#if !defined(LZO_TEST_MATCH_INCLUDE_FILE) -# define LZO_TEST_MATCH_INCLUDE_FILE "lzo1b_tm.ch" -#endif - -#include LZO_TEST_MATCH_INCLUDE_FILE - - - -/*********************************************************************** -// found a literal -************************************************************************/ - - - /* a literal */ -literal: -#if (DD_BITS == 0) - UPDATE_I(dict,0,dindex,ip,in); -#endif - if (++ip >= ip_end) - break; -#if (DD_BITS > 0) - DVAL_NEXT(dv,ip); -#endif - continue; - - - -/*********************************************************************** -// found a match -************************************************************************/ - -match: -#if (DD_BITS == 0) - UPDATE_I(dict,0,dindex,ip,in); -#endif - /* we have found a match of at least M2_MIN_LEN */ - - -#if !defined(LZO_CODE_RUN_INCLUDE_FILE) -# define LZO_CODE_RUN_INCLUDE_FILE "lzo1b_cr.ch" -#endif - -#include LZO_CODE_RUN_INCLUDE_FILE - - - /* ii now points to the start of the current match */ - assert(ii == ip); - - -/*********************************************************************** -// code the match -************************************************************************/ - -#if !defined(LZO_CODE_MATCH_INCLUDE_FILE) -# define LZO_CODE_MATCH_INCLUDE_FILE "lzo1b_cm.ch" -#endif - -#include LZO_CODE_MATCH_INCLUDE_FILE - - - /* ii now points to the start of the next literal run */ - assert(ii == ip); - - } - - -/*********************************************************************** -// end of block -************************************************************************/ - - assert(ip <= in_end); - -#if (LZO_COLLECT_STATS) - { - lzo_uint i; - const lzo_bytep p; - - for (i = 0; i < D_SIZE; i++) - { - p = dict[i]; - if (BOUNDS_CHECKING_OFF_IN_EXPR(p == NULL || p < in || p > in_end)) - lzo_stats->unused_dict_entries++; - } - lzo_stats->unused_dict_entries_percent = - 100.0 * lzo_stats->unused_dict_entries / D_SIZE; - } -#endif - - -#if defined(LZO_RETURN_IF_NOT_COMPRESSIBLE) - /* return if op == out to indicate that we - * couldn't compress and didn't copy anything. - */ - if (op == out) - { - *out_len = 0; - return LZO_E_NOT_COMPRESSIBLE; - } -#endif - - /* store the final literal run */ - if (pd(in_end,ii) > 0) - { - lzo_uint t = pd(in_end,ii); - op = STORE_RUN(op,ii,t); - } - - *out_len = pd(op, out); - return LZO_E_OK; /* compression went ok */ -} - - -/* -vi:ts=4:et -*/ |