File tree 1 file changed +13
-8
lines changed
1 file changed +13
-8
lines changed Original file line number Diff line number Diff line change @@ -98,10 +98,18 @@ PyFloat_GetInfo(void)
98
98
return NULL ;
99
99
}
100
100
101
- #define SetIntFlag (flag ) \
102
- PyStructSequence_SET_ITEM(floatinfo, pos++, PyLong_FromLong(flag))
103
- #define SetDblFlag (flag ) \
104
- PyStructSequence_SET_ITEM(floatinfo, pos++, PyFloat_FromDouble(flag))
101
+ #define SetFlag (CALL ) \
102
+ do { \
103
+ PyObject *flag = (CALL); \
104
+ if (flag == NULL) { \
105
+ Py_CLEAR(floatinfo); \
106
+ return NULL; \
107
+ } \
108
+ PyStructSequence_SET_ITEM(floatinfo, pos++, flag); \
109
+ } while (0)
110
+
111
+ #define SetIntFlag (FLAG ) SetFlag(PyLong_FromLong((FLAG)))
112
+ #define SetDblFlag (FLAG ) SetFlag(PyFloat_FromDouble((FLAG)))
105
113
106
114
SetDblFlag (DBL_MAX );
107
115
SetIntFlag (DBL_MAX_EXP );
@@ -116,11 +124,8 @@ PyFloat_GetInfo(void)
116
124
SetIntFlag (FLT_ROUNDS );
117
125
#undef SetIntFlag
118
126
#undef SetDblFlag
127
+ #undef SetFlag
119
128
120
- if (PyErr_Occurred ()) {
121
- Py_CLEAR (floatinfo );
122
- return NULL ;
123
- }
124
129
return floatinfo ;
125
130
}
126
131
You can’t perform that action at this time.
0 commit comments