diff --git a/Modules/xxlimited_35.c b/Modules/xxlimited_35.c index 647abf6721276c..8d29c71951768a 100644 --- a/Modules/xxlimited_35.c +++ b/Modules/xxlimited_35.c @@ -124,7 +124,7 @@ static PyType_Slot Xxo_Type_slots[] = { }; static PyType_Spec Xxo_Type_spec = { - "xxlimited.Xxo", + "xxlimited_35.Xxo", sizeof(XxoObject), 0, Py_TPFLAGS_DEFAULT | Py_TPFLAGS_HAVE_GC, @@ -189,7 +189,7 @@ static PyType_Slot Str_Type_slots[] = { }; static PyType_Spec Str_Type_spec = { - "xxlimited.Str", + "xxlimited_35.Str", 0, 0, Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, @@ -212,7 +212,7 @@ static PyType_Slot Null_Type_slots[] = { }; static PyType_Spec Null_Type_spec = { - "xxlimited.Null", + "xxlimited_35.Null", 0, /* basicsize */ 0, /* itemsize */ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, @@ -248,40 +248,50 @@ xx_modexec(PyObject *m) Null_Type_slots[1].pfunc = PyType_GenericNew; Str_Type_slots[0].pfunc = &PyUnicode_Type; - Xxo_Type = PyType_FromSpec(&Xxo_Type_spec); - if (Xxo_Type == NULL) - goto fail; - /* Add some symbolic constants to the module */ if (ErrorObject == NULL) { - ErrorObject = PyErr_NewException("xxlimited.error", NULL, NULL); - if (ErrorObject == NULL) - goto fail; + ErrorObject = PyErr_NewException("xxlimited_35.error", NULL, NULL); + if (ErrorObject == NULL) { + return -1; + } } Py_INCREF(ErrorObject); - PyModule_AddObject(m, "error", ErrorObject); + if (PyModule_AddObject(m, "error", ErrorObject) < 0) { + Py_DECREF(ErrorObject); + return -1; + } /* Add Xxo */ - o = PyType_FromSpec(&Xxo_Type_spec); - if (o == NULL) - goto fail; - PyModule_AddObject(m, "Xxo", o); + Xxo_Type = PyType_FromSpec(&Xxo_Type_spec); + if (Xxo_Type == NULL) { + return -1; + } + if (PyModule_AddObject(m, "Xxo", Xxo_Type) < 0) { + Py_DECREF(Xxo_Type); + return -1; + } /* Add Str */ o = PyType_FromSpec(&Str_Type_spec); - if (o == NULL) - goto fail; - PyModule_AddObject(m, "Str", o); + if (o == NULL) { + return -1; + } + if (PyModule_AddObject(m, "Str", o) < 0) { + Py_DECREF(o); + return -1; + } /* Add Null */ o = PyType_FromSpec(&Null_Type_spec); - if (o == NULL) - goto fail; - PyModule_AddObject(m, "Null", o); + if (o == NULL) { + return -1; + } + if (PyModule_AddObject(m, "Null", o) < 0) { + Py_DECREF(o); + return -1; + } + return 0; - fail: - Py_XDECREF(m); - return -1; } diff --git a/Modules/xxmodule.c b/Modules/xxmodule.c index edcd62157c02f3..a6e5071d1d6303 100644 --- a/Modules/xxmodule.c +++ b/Modules/xxmodule.c @@ -358,31 +358,32 @@ xx_exec(PyObject *m) /* Finalize the type object including setting type of the new type * object; doing it here is required for portability, too. */ - if (PyType_Ready(&Xxo_Type) < 0) - goto fail; + if (PyType_Ready(&Xxo_Type) < 0) { + return -1; + } /* Add some symbolic constants to the module */ if (ErrorObject == NULL) { ErrorObject = PyErr_NewException("xx.error", NULL, NULL); - if (ErrorObject == NULL) - goto fail; + if (ErrorObject == NULL) { + return -1; + } + } + int rc = PyModule_AddType(m, (PyTypeObject *)ErrorObject); + Py_DECREF(ErrorObject); + if (rc < 0) { + return -1; } - Py_INCREF(ErrorObject); - PyModule_AddObject(m, "error", ErrorObject); - - /* Add Str */ - if (PyType_Ready(&Str_Type) < 0) - goto fail; - PyModule_AddObject(m, "Str", (PyObject *)&Str_Type); - - /* Add Null */ - if (PyType_Ready(&Null_Type) < 0) - goto fail; - PyModule_AddObject(m, "Null", (PyObject *)&Null_Type); + + /* Add Str and Null types */ + if (PyModule_AddType(m, &Str_Type) < 0) { + return -1; + } + if (PyModule_AddType(m, &Null_Type) < 0) { + return -1; + } + return 0; - fail: - Py_XDECREF(m); - return -1; } static struct PyModuleDef_Slot xx_slots[] = {
Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.
Alternative Proxies: