diff options
Diffstat (limited to 'src/cairomodule.c')
-rw-r--r-- | src/cairomodule.c | 26 |
1 files changed, 8 insertions, 18 deletions
diff --git a/src/cairomodule.c b/src/cairomodule.c index 58e665c..09612b7 100644 --- a/src/cairomodule.c +++ b/src/cairomodule.c @@ -70,7 +70,7 @@ Pycairo_Check_Status (cairo_status_t status) { } -/* C API. Clients get at this via Pycairo_IMPORT, defined in pycairo.h. +/* C API. Clients get at this via import_cairo(), defined in pycairo.h. */ static Pycairo_CAPI_t CAPI = { &PycairoContext_Type, @@ -268,8 +268,6 @@ PyInit__cairo(void) PyObject *m = PyModule_Create(&cairomodule); - //PyObject *m; - //m = Py_InitModule("cairo._cairo", cairo_functions); if (m==NULL) return NULL; GETSTATE(m)->ErrorObject = PyErr_NewException("cairo.Error", NULL, NULL); @@ -277,18 +275,6 @@ PyInit__cairo(void) Py_DECREF(m); return NULL; } - /* Add 'cairo.Error' to the module */ - // if (CairoError == NULL) { - // CairoError = PyErr_NewException("cairo.Error", NULL, NULL); - // if (CairoError == NULL) - // return NULL; - //} - //Py_INCREF(CairoError); - // not needed ? - //if (PyModule_AddObject(m, "Error", CairoError) < 0) - // return NULL; - - PyModule_AddStringConstant(m, "version", VERSION); PyModule_AddObject(m, "version_info", @@ -377,9 +363,7 @@ PyInit__cairo(void) (PyObject *)&PycairoXlibSurface_Type); #endif - PyModule_AddObject(m, "CAPI", PyCObject_FromVoidPtr(&CAPI, NULL)); - - /* constants */ + /* constants */ #if CAIRO_HAS_ATSUI_FONT PyModule_AddIntConstant(m, "HAS_ATSUI_FONT", 1); #else @@ -541,5 +525,11 @@ PyInit__cairo(void) CONSTANT(SUBPIXEL_ORDER_VBGR); #undef CONSTANT + /* Create a Capsule containing the CAPI pointer */ + PyObject *T = PyCapsule_New((void *)(&CAPI), "cairo.CAPI", 0); + if (T != NULL) { + PyModule_AddObject(m, "CAPI", T); + } + return m; } |