@@ -7851,43 +7851,29 @@ _pickle_exec(PyObject *m)
7851
7851
{
7852
7852
PickleState * st = _Pickle_GetState (m );
7853
7853
7854
- st -> Pdata_Type = (PyTypeObject * )PyType_FromMetaclass (NULL , m , & pdata_spec ,
7855
- NULL );
7856
- if (st -> Pdata_Type == NULL ) {
7857
- return -1 ;
7858
- }
7859
-
7860
- st -> PicklerMemoProxyType = (PyTypeObject * )PyType_FromMetaclass (
7861
- NULL , m , & memoproxy_spec , NULL );
7862
- if (st -> PicklerMemoProxyType == NULL ) {
7863
- return -1 ;
7864
- }
7865
-
7866
- st -> UnpicklerMemoProxyType = (PyTypeObject * )PyType_FromMetaclass (
7867
- NULL , m , & unpickler_memoproxy_spec , NULL );
7868
- if (st -> UnpicklerMemoProxyType == NULL ) {
7869
- return -1 ;
7870
- }
7854
+ #define CREATE_TYPE (mod , type , spec ) \
7855
+ do { \
7856
+ type = (PyTypeObject *)PyType_FromMetaclass(NULL, mod, spec, NULL); \
7857
+ if (type == NULL) { \
7858
+ return -1; \
7859
+ } \
7860
+ } while (0)
7861
+
7862
+ CREATE_TYPE (m , st -> Pdata_Type , & pdata_spec );
7863
+ CREATE_TYPE (m , st -> PicklerMemoProxyType , & memoproxy_spec );
7864
+ CREATE_TYPE (m , st -> UnpicklerMemoProxyType , & unpickler_memoproxy_spec );
7865
+ CREATE_TYPE (m , st -> Pickler_Type , & pickler_type_spec );
7866
+ CREATE_TYPE (m , st -> Unpickler_Type , & unpickler_type_spec );
7867
+
7868
+ #undef CREATE_TYPE
7871
7869
7872
7870
/* Add types */
7873
7871
if (PyModule_AddType (m , & PyPickleBuffer_Type ) < 0 ) {
7874
7872
return -1 ;
7875
7873
}
7876
-
7877
- st -> Pickler_Type = (PyTypeObject * )PyType_FromModuleAndSpec (m , & pickler_type_spec , NULL );
7878
- if (st -> Pickler_Type == NULL ) {
7879
- return -1 ;
7880
- }
7881
-
7882
7874
if (PyModule_AddType (m , st -> Pickler_Type ) < 0 ) {
7883
7875
return -1 ;
7884
7876
}
7885
-
7886
- st -> Unpickler_Type = (PyTypeObject * )PyType_FromModuleAndSpec (m , & unpickler_type_spec , NULL );
7887
- if (st -> Unpickler_Type == NULL ) {
7888
- return -1 ;
7889
- }
7890
-
7891
7877
if (PyModule_AddType (m , st -> Unpickler_Type ) < 0 ) {
7892
7878
return -1 ;
7893
7879
}
0 commit comments