@@ -801,21 +801,33 @@ D_set_sw(void *ptr, PyObject *value, Py_ssize_t size)
801801 if (c .real == -1 && PyErr_Occurred ()) {
802802 return NULL ;
803803 }
804- if (PyFloat_Pack8 (c .real , ptr , PY_BIG_ENDIAN )
805- || PyFloat_Pack8 (c .imag , ptr + sizeof (double ), PY_BIG_ENDIAN ))
804+ #ifdef WORDS_BIGENDIAN
805+ if (PyFloat_Pack8 (c .real , ptr , 1 )
806+ || PyFloat_Pack8 (c .imag , ptr + sizeof (double ), 1 ))
807+ {
808+ return NULL ;
809+ }
810+ #else
811+ if (PyFloat_Pack8 (c .real , ptr , 0 )
812+ || PyFloat_Pack8 (c .imag , ptr + sizeof (double ), 0 ))
806813 {
807814 return NULL ;
808815 }
816+ #endif
809817 _RET (value );
810818}
811819
812820static PyObject *
813821D_get_sw (void * ptr , Py_ssize_t size )
814822{
815823 assert (NUM_BITS (size ) || (size == 2 * sizeof (double )));
816- return PyComplex_FromDoubles (PyFloat_Unpack8 (ptr , PY_BIG_ENDIAN ),
817- PyFloat_Unpack8 (ptr + sizeof (double ),
818- PY_BIG_ENDIAN ));
824+ #ifdef WORDS_BIGENDIAN
825+ return PyComplex_FromDoubles (PyFloat_Unpack8 (ptr , 1 ),
826+ PyFloat_Unpack8 (ptr + sizeof (double ), 1 ));
827+ #else
828+ return PyComplex_FromDoubles (PyFloat_Unpack8 (ptr , 0 ),
829+ PyFloat_Unpack8 (ptr + sizeof (double ), 0 ));
830+ #endif
819831}
820832
821833/* F: float complex */
@@ -852,21 +864,33 @@ F_set_sw(void *ptr, PyObject *value, Py_ssize_t size)
852864 if (c .real == -1 && PyErr_Occurred ()) {
853865 return NULL ;
854866 }
855- if (PyFloat_Pack4 (c .real , ptr , PY_BIG_ENDIAN )
856- || PyFloat_Pack4 (c .imag , ptr + sizeof (float ), PY_BIG_ENDIAN ))
867+ #ifdef WORDS_BIGENDIAN
868+ if (PyFloat_Pack4 (c .real , ptr , 1 )
869+ || PyFloat_Pack4 (c .imag , ptr + sizeof (float ), 1 ))
870+ {
871+ return NULL ;
872+ }
873+ #else
874+ if (PyFloat_Pack4 (c .real , ptr , 0 )
875+ || PyFloat_Pack4 (c .imag , ptr + sizeof (float ), 0 ))
857876 {
858877 return NULL ;
859878 }
879+ #endif
860880 _RET (value );
861881}
862882
863883static PyObject *
864884F_get_sw (void * ptr , Py_ssize_t size )
865885{
866886 assert (NUM_BITS (size ) || (size == 2 * sizeof (float )));
867- return PyComplex_FromDoubles (PyFloat_Unpack4 (ptr , PY_BIG_ENDIAN ),
868- PyFloat_Unpack4 (ptr + sizeof (float ),
869- PY_BIG_ENDIAN ));
887+ #ifdef WORDS_BIGENDIAN
888+ return PyComplex_FromDoubles (PyFloat_Unpack4 (ptr , 1 ),
889+ PyFloat_Unpack4 (ptr + sizeof (float ), 1 ));
890+ #else
891+ return PyComplex_FromDoubles (PyFloat_Unpack4 (ptr , 0 ),
892+ PyFloat_Unpack4 (ptr + sizeof (float ), 0 ));
893+ #endif
870894}
871895
872896/* G: long double complex */
0 commit comments