File tree 1 file changed +16
-8
lines changed
1 file changed +16
-8
lines changed Original file line number Diff line number Diff line change @@ -98,10 +98,21 @@ 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 ) \
112
+ SetFlag(PyLong_FromLong((FLAG)))
113
+
114
+ #define SetDblFlag (FLAG ) \
115
+ SetFlag(PyFloat_FromDouble((FLAG)))
105
116
106
117
SetDblFlag (DBL_MAX );
107
118
SetIntFlag (DBL_MAX_EXP );
@@ -116,11 +127,8 @@ PyFloat_GetInfo(void)
116
127
SetIntFlag (FLT_ROUNDS );
117
128
#undef SetIntFlag
118
129
#undef SetDblFlag
130
+ #undef SetFlag
119
131
120
- if (PyErr_Occurred ()) {
121
- Py_CLEAR (floatinfo );
122
- return NULL ;
123
- }
124
132
return floatinfo ;
125
133
}
126
134
You can’t perform that action at this time.
0 commit comments