xxhash can be included twice in any order
Previously, followed by : would fail to include the static definitions, because the second include was simply skipped by guard macro. Now it works as intended : the missing static part is included during the second include.
This commit is contained in:
+11
-15
@@ -64,16 +64,12 @@ XXH64 13.8 GB/s 1.9 GB/s
|
|||||||
XXH32 6.8 GB/s 6.0 GB/s
|
XXH32 6.8 GB/s 6.0 GB/s
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef XXHASH_H_5627135585666179
|
|
||||||
#define XXHASH_H_5627135585666179 1
|
|
||||||
|
|
||||||
#if defined (__cplusplus)
|
#if defined (__cplusplus)
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef XXH_NAMESPACE
|
#ifndef XXHASH_H_5627135585666179
|
||||||
# define XXH_NAMESPACE ZSTD_ /* Zstandard specific */
|
#define XXHASH_H_5627135585666179 1
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/* ****************************
|
/* ****************************
|
||||||
@@ -242,6 +238,11 @@ XXH_PUBLIC_API void XXH64_copyState(XXH64_state_t* restrict dst_state, const XXH
|
|||||||
/* **************************
|
/* **************************
|
||||||
* Canonical representation
|
* Canonical representation
|
||||||
****************************/
|
****************************/
|
||||||
|
/* Default result type for XXH functions are primitive unsigned 32 and 64 bits.
|
||||||
|
* The canonical representation uses human-readable write convention, aka big-endian (large digits first).
|
||||||
|
* These functions allow transformation of hash result into and from its canonical format.
|
||||||
|
* This way, hash values can be written into a file / memory, and remain comparable on different systems and programs.
|
||||||
|
*/
|
||||||
typedef struct { unsigned char digest[4]; } XXH32_canonical_t;
|
typedef struct { unsigned char digest[4]; } XXH32_canonical_t;
|
||||||
typedef struct { unsigned char digest[8]; } XXH64_canonical_t;
|
typedef struct { unsigned char digest[8]; } XXH64_canonical_t;
|
||||||
|
|
||||||
@@ -251,14 +252,9 @@ XXH_PUBLIC_API void XXH64_canonicalFromHash(XXH64_canonical_t* dst, XXH64_hash_t
|
|||||||
XXH_PUBLIC_API XXH32_hash_t XXH32_hashFromCanonical(const XXH32_canonical_t* src);
|
XXH_PUBLIC_API XXH32_hash_t XXH32_hashFromCanonical(const XXH32_canonical_t* src);
|
||||||
XXH_PUBLIC_API XXH64_hash_t XXH64_hashFromCanonical(const XXH64_canonical_t* src);
|
XXH_PUBLIC_API XXH64_hash_t XXH64_hashFromCanonical(const XXH64_canonical_t* src);
|
||||||
|
|
||||||
/* Default result type for XXH functions are primitive unsigned 32 and 64 bits.
|
#endif /* XXHASH_H_5627135585666179 */
|
||||||
* The canonical representation uses human-readable write convention, aka big-endian (large digits first).
|
|
||||||
* These functions allow transformation of hash result into and from its canonical format.
|
|
||||||
* This way, hash values can be written into a file / memory, and remain comparable on different systems and programs.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef XXH_STATIC_LINKING_ONLY
|
|
||||||
|
|
||||||
/* ================================================================================================
|
/* ================================================================================================
|
||||||
This section contains definitions which are not guaranteed to remain stable.
|
This section contains definitions which are not guaranteed to remain stable.
|
||||||
@@ -266,6 +262,8 @@ XXH_PUBLIC_API XXH64_hash_t XXH64_hashFromCanonical(const XXH64_canonical_t* src
|
|||||||
They shall only be used with static linking.
|
They shall only be used with static linking.
|
||||||
Never use these definitions in association with dynamic linking !
|
Never use these definitions in association with dynamic linking !
|
||||||
=================================================================================================== */
|
=================================================================================================== */
|
||||||
|
#if defined(XXH_STATIC_LINKING_ONLY) && !defined(XXH_STATIC_H_3543687687345)
|
||||||
|
#define XXH_STATIC_H_3543687687345
|
||||||
|
|
||||||
/* These definitions are only meant to allow allocation of XXH state
|
/* These definitions are only meant to allow allocation of XXH state
|
||||||
statically, on stack, or in a struct for example.
|
statically, on stack, or in a struct for example.
|
||||||
@@ -299,11 +297,9 @@ XXH_PUBLIC_API XXH64_hash_t XXH64_hashFromCanonical(const XXH64_canonical_t* src
|
|||||||
# include "xxhash.c" /* include xxhash functions as `static`, for inlining */
|
# include "xxhash.c" /* include xxhash functions as `static`, for inlining */
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
#endif /* XXH_STATIC_LINKING_ONLY */
|
#endif /* XXH_STATIC_LINKING_ONLY && XXH_STATIC_H_3543687687345 */
|
||||||
|
|
||||||
|
|
||||||
#if defined (__cplusplus)
|
#if defined (__cplusplus)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* XXHASH_H_5627135585666179 */
|
|
||||||
|
|||||||
Reference in New Issue
Block a user