fix error handling
diff --git a/Modules/future_builtins.c b/Modules/future_builtins.c
index 4c840fb..bcd42ef 100644
--- a/Modules/future_builtins.c
+++ b/Modules/future_builtins.c
@@ -85,11 +85,12 @@
if (itertools == NULL)
return;
+ /* If anything in the following loop fails, we fall through. */
for (cur_func = it_funcs; *cur_func; ++cur_func){
iter_func = PyObject_GetAttrString(itertools, *cur_func);
- if (iter_func == NULL)
- return;
- PyModule_AddObject(m, *cur_func+1, iter_func);
+ if (iter_func == NULL ||
+ PyModule_AddObject(m, *cur_func+1, iter_func) < 0)
+ break;
}
Py_DECREF(itertools);
/* any other initialization needed */