1 | /* |
1 | /* |
2 | * Copyright (c) 2000-2007 Marc Alexander Lehmann <schmorp@schmorp.de> |
2 | * Copyright (c) 2000-2007 Marc Alexander Lehmann <schmorp@schmorp.de> |
3 | * |
3 | * |
4 | * Redistribution and use in source and binary forms, with or without modifica- |
4 | * Redistribution and use in source and binary forms, with or without modifica- |
5 | * tion, are permitted provided that the following conditions are met: |
5 | * tion, are permitted provided that the following conditions are met: |
6 | * |
6 | * |
7 | * 1. Redistributions of source code must retain the above copyright notice, |
7 | * 1. Redistributions of source code must retain the above copyright notice, |
8 | * this list of conditions and the following disclaimer. |
8 | * this list of conditions and the following disclaimer. |
9 | * |
9 | * |
10 | * 2. Redistributions in binary form must reproduce the above copyright |
10 | * 2. Redistributions in binary form must reproduce the above copyright |
11 | * notice, this list of conditions and the following disclaimer in the |
11 | * notice, this list of conditions and the following disclaimer in the |
12 | * documentation and/or other materials provided with the distribution. |
12 | * documentation and/or other materials provided with the distribution. |
13 | * |
13 | * |
14 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED |
14 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED |
15 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MER- |
15 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MER- |
16 | * CHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO |
16 | * CHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO |
17 | * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- |
17 | * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- |
18 | * CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
18 | * CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
… | |
… | |
157 | # include <string.h> |
157 | # include <string.h> |
158 | # include <limits.h> |
158 | # include <limits.h> |
159 | #endif |
159 | #endif |
160 | |
160 | |
161 | #ifndef LZF_USE_OFFSETS |
161 | #ifndef LZF_USE_OFFSETS |
162 | # if defined (WIN32) || defined (_WIN32) |
162 | # ifdef _WIN32 |
163 | # define LZF_USE_OFFSETS defined(_M_X64) |
163 | # define LZF_USE_OFFSETS defined(_M_X64) |
164 | # else |
164 | # else |
165 | # if __cplusplus > 199711L |
165 | # if __cplusplus > 199711L |
166 | # include <cstdint> |
166 | # include <cstdint> |
167 | # else |
167 | # else |
… | |
… | |
185 | # endif |
185 | # endif |
186 | #endif |
186 | #endif |
187 | |
187 | |
188 | typedef LZF_HSLOT LZF_STATE[1 << (HLOG)]; |
188 | typedef LZF_HSLOT LZF_STATE[1 << (HLOG)]; |
189 | |
189 | |
190 | #if !STRICT_ALIGN |
|
|
191 | /* for unaligned accesses we need a 16 bit datatype. */ |
|
|
192 | # if USHRT_MAX == 65535 |
190 | #if USHRT_MAX == 65535 |
193 | typedef unsigned short u16; |
191 | typedef unsigned short u16; |
194 | # elif UINT_MAX == 65535 |
192 | #elif UINT_MAX == 65535 |
195 | typedef unsigned int u16; |
193 | typedef unsigned int u16; |
196 | # else |
194 | #else |
197 | # undef STRICT_ALIGN |
195 | # undef STRICT_ALIGN |
198 | # define STRICT_ALIGN 1 |
196 | # define STRICT_ALIGN 1 |
199 | # endif |
|
|
200 | #endif |
197 | #endif |
201 | |
198 | |
202 | #if ULTRA_FAST |
199 | #if ULTRA_FAST |
203 | # undef VERY_FAST |
200 | # undef VERY_FAST |
204 | #endif |
201 | #endif |