do not call newmethodobject directly
diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c
index 713afbf..4b81889 100644
--- a/Modules/signalmodule.c
+++ b/Modules/signalmodule.c
@@ -215,6 +215,7 @@
{"signal", PySignal_Signal},
{"getsignal", PySignal_GetSignal},
{"pause", PySignal_Pause},
+ {"default_int_handler", PySignal_CDefaultIntHandler},
{NULL, NULL} /* sentinel */
};
@@ -240,11 +241,8 @@
PySignal_SignalIgnoreHandler = PyInt_FromLong((long)SIG_IGN);
PyDict_SetItemString(d, "SIG_IGN", PySignal_SignalIgnoreHandler);
PyDict_SetItemString(d, "NSIG", PyInt_FromLong((long)NSIG));
- PySignal_DefaultIntHandler = PyCFunction_New("default_int_handler",
- PySignal_CDefaultIntHandler,
- (PyObject *)NULL,
- 0);
- PyDict_SetItemString(d, "default_int_handler", PySignal_DefaultIntHandler);
+ PySignal_DefaultIntHandler =
+ PyDict_GetItemString(d, "default_int_handler");
PySignal_SignalHandlerArray[0].tripped = 0;
for (i = 1; i < NSIG; i++) {