@@ -1699,29 +1699,14 @@ float___getformat___impl(PyTypeObject *type, const char *typestr)
16991699{
17001700 float_format_type r ;
17011701
1702- if (strcmp (typestr , "double" ) == 0 ) {
1703- r = double_format ;
1704- }
1705- else if (strcmp (typestr , "float" ) == 0 ) {
1706- r = float_format ;
1707- }
1708- else {
1702+ if (strcmp (typestr , "double" ) != 0 || strcmp (typestr , "float" ) != 0 ) {
17091703 PyErr_SetString (PyExc_ValueError ,
17101704 "__getformat__() argument 1 must be "
17111705 "'double' or 'float'" );
17121706 return NULL ;
17131707 }
1714-
1715- switch (r ) {
1716- case ieee_little_endian_format :
1717- return PyUnicode_FromString ("IEEE, little-endian" );
1718- case ieee_big_endian_format :
1719- return PyUnicode_FromString ("IEEE, big-endian" );
1720- default :
1721- PyErr_SetString (PyExc_RuntimeError ,
1722- "insane float_format or double_format" );
1723- return NULL ;
1724- }
1708+ return PyUnicode_FromString (_PY_FLOAT_LITTLE_ENDIAN ?
1709+ "IEEE, little-endian" : "IEEE, big-endian" );
17251710}
17261711
17271712static PyObject *
@@ -1874,27 +1859,6 @@ PyTypeObject PyFloat_Type = {
18741859 .tp_version_tag = _Py_TYPE_VERSION_FLOAT ,
18751860};
18761861
1877- static void
1878- _init_global_state (void )
1879- {
1880- #ifdef DOUBLE_IS_BIG_ENDIAN_IEEE754
1881- double_format = ieee_big_endian_format ;
1882- float_format = ieee_big_endian_format ;
1883- #else
1884- double_format = ieee_little_endian_format ;
1885- float_format = ieee_little_endian_format ;
1886- #endif
1887- }
1888-
1889- void
1890- _PyFloat_InitState (PyInterpreterState * interp )
1891- {
1892- if (!_Py_IsMainInterpreter (interp )) {
1893- return ;
1894- }
1895- _init_global_state ();
1896- }
1897-
18981862PyStatus
18991863_PyFloat_InitTypes (PyInterpreterState * interp )
19001864{
@@ -2098,8 +2062,7 @@ PyFloat_Pack4(double x, char *data, int le)
20982062 unsigned char s [sizeof (float )];
20992063 memcpy (s , & y , sizeof (float ));
21002064
2101- if ((float_format == ieee_little_endian_format && !le )
2102- || (float_format == ieee_big_endian_format && le )) {
2065+ if ((_PY_FLOAT_LITTLE_ENDIAN && !le ) || (_PY_FLOAT_BIG_ENDIAN && le )) {
21032066 p += 3 ;
21042067 incr = -1 ;
21052068 }
@@ -2120,8 +2083,7 @@ PyFloat_Pack8(double x, char *data, int le)
21202083 const unsigned char * s = as_bytes ;
21212084 int i , incr = 1 ;
21222085
2123- if ((double_format == ieee_little_endian_format && !le )
2124- || (double_format == ieee_big_endian_format && le )) {
2086+ if ((_PY_FLOAT_LITTLE_ENDIAN && !le ) || (_PY_FLOAT_BIG_ENDIAN && le )) {
21252087 p += 7 ;
21262088 incr = -1 ;
21272089 }
@@ -2195,8 +2157,7 @@ PyFloat_Unpack4(const char *data, int le)
21952157 unsigned char * p = (unsigned char * )data ;
21962158 float x ;
21972159
2198- if ((float_format == ieee_little_endian_format && !le )
2199- || (float_format == ieee_big_endian_format && le )) {
2160+ if ((_PY_FLOAT_LITTLE_ENDIAN && !le ) || (_PY_FLOAT_BIG_ENDIAN && le )) {
22002161 char buf [4 ];
22012162 char * d = & buf [3 ];
22022163 int i ;
@@ -2254,8 +2215,7 @@ PyFloat_Unpack8(const char *data, int le)
22542215 unsigned char * p = (unsigned char * )data ;
22552216 double x ;
22562217
2257- if ((double_format == ieee_little_endian_format && !le )
2258- || (double_format == ieee_big_endian_format && le )) {
2218+ if ((_PY_FLOAT_LITTLE_ENDIAN && !le ) || (_PY_FLOAT_BIG_ENDIAN && le )) {
22592219 char buf [8 ];
22602220 char * d = & buf [7 ];
22612221 int i ;
0 commit comments