mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-16 14:11:51 -06:00
Add some fixes to lzma2 header files
- remove disabling of MSVC C4389 warning - update mem.h from current zstd code
This commit is contained in:
@@ -28,9 +28,6 @@ extern "C" {
|
|||||||
#if defined(_MSC_VER) /* Visual Studio */
|
#if defined(_MSC_VER) /* Visual Studio */
|
||||||
# include <stdlib.h> /* _byteswap_ulong */
|
# include <stdlib.h> /* _byteswap_ulong */
|
||||||
# include <intrin.h> /* _byteswap_* */
|
# include <intrin.h> /* _byteswap_* */
|
||||||
# pragma warning(disable : 4389) /* disable: C4389: '==' : signed/unsigned mismatch */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#if defined(__GNUC__)
|
#if defined(__GNUC__)
|
||||||
# define MEM_STATIC static __inline __attribute__((unused))
|
# define MEM_STATIC static __inline __attribute__((unused))
|
||||||
@@ -42,6 +39,10 @@ extern "C" {
|
|||||||
# define MEM_STATIC static /* this version may generate warnings for unused static functions; disable the relevant warning */
|
# define MEM_STATIC static /* this version may generate warnings for unused static functions; disable the relevant warning */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef __has_builtin
|
||||||
|
# define __has_builtin(x) 0 /* compat. with non-clang compilers */
|
||||||
|
#endif
|
||||||
|
|
||||||
/* code only tested on 32 and 64 bits systems */
|
/* code only tested on 32 and 64 bits systems */
|
||||||
#define MEM_STATIC_ASSERT(c) { enum { MEM_static_assert = 1/(int)(!!(c)) }; }
|
#define MEM_STATIC_ASSERT(c) { enum { MEM_static_assert = 1/(int)(!!(c)) }; }
|
||||||
MEM_STATIC void MEM_check(void) { MEM_STATIC_ASSERT((sizeof(size_t)==4) || (sizeof(size_t)==8)); }
|
MEM_STATIC void MEM_check(void) { MEM_STATIC_ASSERT((sizeof(size_t)==4) || (sizeof(size_t)==8)); }
|
||||||
@@ -60,11 +61,23 @@ MEM_STATIC void MEM_check(void) { MEM_STATIC_ASSERT((sizeof(size_t)==4) || (size
|
|||||||
typedef uint64_t U64;
|
typedef uint64_t U64;
|
||||||
typedef int64_t S64;
|
typedef int64_t S64;
|
||||||
#else
|
#else
|
||||||
|
# include <limits.h>
|
||||||
|
#if CHAR_BIT != 8
|
||||||
|
# error "this implementation requires char to be exactly 8-bit type"
|
||||||
|
#endif
|
||||||
typedef unsigned char BYTE;
|
typedef unsigned char BYTE;
|
||||||
|
#if USHRT_MAX != 65535
|
||||||
|
# error "this implementation requires short to be exactly 16-bit type"
|
||||||
|
#endif
|
||||||
typedef unsigned short U16;
|
typedef unsigned short U16;
|
||||||
typedef signed short S16;
|
typedef signed short S16;
|
||||||
|
#if UINT_MAX != 4294967295
|
||||||
|
# error "this implementation requires int to be exactly 32-bit type"
|
||||||
|
#endif
|
||||||
typedef unsigned int U32;
|
typedef unsigned int U32;
|
||||||
typedef signed int S32;
|
typedef signed int S32;
|
||||||
|
/* note : there are no limits defined for long long type in C90.
|
||||||
|
* limits exist in C99, however, in such case, <stdint.h> is preferred */
|
||||||
typedef unsigned long long U64;
|
typedef unsigned long long U64;
|
||||||
typedef signed long long S64;
|
typedef signed long long S64;
|
||||||
#endif
|
#endif
|
||||||
@@ -189,7 +202,8 @@ MEM_STATIC U32 MEM_swap32(U32 in)
|
|||||||
{
|
{
|
||||||
#if defined(_MSC_VER) /* Visual Studio */
|
#if defined(_MSC_VER) /* Visual Studio */
|
||||||
return _byteswap_ulong(in);
|
return _byteswap_ulong(in);
|
||||||
#elif defined (__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 403)
|
#elif (defined (__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 403)) \
|
||||||
|
|| (defined(__clang__) && __has_builtin(__builtin_bswap32))
|
||||||
return __builtin_bswap32(in);
|
return __builtin_bswap32(in);
|
||||||
#else
|
#else
|
||||||
return ((in << 24) & 0xff000000 ) |
|
return ((in << 24) & 0xff000000 ) |
|
||||||
@@ -203,7 +217,8 @@ MEM_STATIC U64 MEM_swap64(U64 in)
|
|||||||
{
|
{
|
||||||
#if defined(_MSC_VER) /* Visual Studio */
|
#if defined(_MSC_VER) /* Visual Studio */
|
||||||
return _byteswap_uint64(in);
|
return _byteswap_uint64(in);
|
||||||
#elif defined (__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 403)
|
#elif (defined (__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 403)) \
|
||||||
|
|| (defined(__clang__) && __has_builtin(__builtin_bswap64))
|
||||||
return __builtin_bswap64(in);
|
return __builtin_bswap64(in);
|
||||||
#else
|
#else
|
||||||
return ((in << 56) & 0xff00000000000000ULL) |
|
return ((in << 56) & 0xff00000000000000ULL) |
|
||||||
|
|||||||
@@ -102,7 +102,6 @@ extern "C" {
|
|||||||
#elif defined(_MSC_VER)
|
#elif defined(_MSC_VER)
|
||||||
# define UTIL_STATIC static __inline
|
# define UTIL_STATIC static __inline
|
||||||
# pragma warning(disable : 4996) /* disable: C4996: 'strncpy': This function or variable may be unsafe. */
|
# pragma warning(disable : 4996) /* disable: C4996: 'strncpy': This function or variable may be unsafe. */
|
||||||
# pragma warning(disable : 4389) /* disable: C4389: '==' : signed/unsigned mismatch */
|
|
||||||
#else
|
#else
|
||||||
# define UTIL_STATIC static /* this version may generate warnings for unused static functions; disable the relevant warning */
|
# define UTIL_STATIC static /* this version may generate warnings for unused static functions; disable the relevant warning */
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user