From c95ca9f21a3524718a83c3415bb7102a508154be Mon Sep 17 00:00:00 2001 From: Stefan Behnel <stefan_ml@behnel.de> Date: Tue, 1 Aug 2017 00:54:13 +0200 Subject: [PATCH] remove duplicated "IsLittleEndian" helper (already exists in ModuleSetupCode.c now) --- Cython/Compiler/Buffer.py | 3 ++- Cython/Utility/Buffer.c | 9 ++------- Cython/Utility/ModuleSetupCode.c | 4 ++-- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/Cython/Compiler/Buffer.py b/Cython/Compiler/Buffer.py index 2c14c539a..1f361d23d 100644 --- a/Cython/Compiler/Buffer.py +++ b/Cython/Compiler/Buffer.py @@ -738,7 +738,8 @@ buffer_structs_code = load_buffer_utility( "BufferFormatStructs", proto_block='utility_code_proto_before_types') acquire_utility_code = load_buffer_utility("BufferFormatCheck", context=context, - requires=[buffer_structs_code]) + requires=[buffer_structs_code, + UtilityCode.load_cached("IsLittleEndian", "ModuleSetupCode.c")]) # See utility code BufferFormatFromTypeInfo _typeinfo_to_format_code = load_buffer_utility("TypeInfoToFormat", context={}, diff --git a/Cython/Utility/Buffer.c b/Cython/Utility/Buffer.c index bea311c63..4814c236a 100644 --- a/Cython/Utility/Buffer.c +++ b/Cython/Utility/Buffer.c @@ -166,11 +166,6 @@ static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx, /////////////// BufferFormatCheck /////////////// -static CYTHON_INLINE int __Pyx_IsLittleEndian(void) { - unsigned int n = 1; - return *(unsigned char*)(&n) != 0; -} - static void __Pyx_BufFmt_Init(__Pyx_BufFmt_Context* ctx, __Pyx_BufFmt_StackElem* stack, @@ -611,7 +606,7 @@ static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const cha ++ts; break; case '<': - if (!__Pyx_IsLittleEndian()) { + if (!__Pyx_Is_Little_Endian()) { PyErr_SetString(PyExc_ValueError, "Little-endian buffer not supported on big-endian compiler"); return NULL; } @@ -620,7 +615,7 @@ static const char* __Pyx_BufFmt_CheckString(__Pyx_BufFmt_Context* ctx, const cha break; case '>': case '!': - if (__Pyx_IsLittleEndian()) { + if (__Pyx_Is_Little_Endian()) { PyErr_SetString(PyExc_ValueError, "Big-endian buffer not supported on little-endian compiler"); return NULL; } diff --git a/Cython/Utility/ModuleSetupCode.c b/Cython/Utility/ModuleSetupCode.c index 77ea59c08..2b6827b68 100644 --- a/Cython/Utility/ModuleSetupCode.c +++ b/Cython/Utility/ModuleSetupCode.c @@ -720,11 +720,11 @@ static int __Pyx_check_binary_version(void) { /////////////// IsLittleEndian.proto /////////////// -static int __Pyx_Is_Little_Endian(void); +static CYTHON_INLINE int __Pyx_Is_Little_Endian(void); /////////////// IsLittleEndian /////////////// -static int __Pyx_Is_Little_Endian(void) +static CYTHON_INLINE int __Pyx_Is_Little_Endian(void) { union { uint32_t u32; -- 2.30.9