Fix more issues with loading C modules.
authorJelmer Vernooij <jelmer@samba.org>
Mon, 2 Jun 2008 21:12:51 +0000 (23:12 +0200)
committerJelmer Vernooij <jelmer@samba.org>
Mon, 2 Jun 2008 21:12:51 +0000 (23:12 +0200)
client.c
core.c
ra.c
wc.c

index eaeb49ea26cc560350b4a864fbe08acc84675359..e4ab3dd3acf8e445a69585704431078d5c70507f 100644 (file)
--- a/client.c
+++ b/client.c
@@ -412,14 +412,14 @@ PyTypeObject Client_Type = {
     .tp_methods = client_methods,
     .tp_dealloc = client_dealloc,
     .tp_new = client_new,
-       .tp_getset = client_getset,
+       .tp_getset = client_getset
 };
 
 void initclient(void)
 {
     PyObject *mod;
 
-    if (PyType_Check(&Client_Type) < 0)
+    if (PyType_Ready(&Client_Type) < 0)
         return;
 
        /* Make sure APR is initialized */
@@ -429,6 +429,6 @@ void initclient(void)
     if (mod == NULL)
         return;
 
-    PyModule_AddObject(mod, "Client", (PyObject *)&Client_Type);
     Py_INCREF(&Client_Type);
+    PyModule_AddObject(mod, "Client", (PyObject *)&Client_Type);
 }
diff --git a/core.c b/core.c
index fc3fc318ac985dfde0c0e6ce55fa25ec4a8c052d..6bcd28014cb673f11bc93ec162c378e8ad666d34 100644 (file)
--- a/core.c
+++ b/core.c
@@ -78,8 +78,11 @@ static PyObject *get_config(PyObject *self, PyObject *args)
     ret = PyDict_New();
     for (idx = apr_hash_first(pool, cfg_hash); idx != NULL; 
                 idx = apr_hash_next(idx)) {
+               PyObject *data;
         apr_hash_this(idx, (const void **)&key, &klen, (void **)&val);
-        PyDict_SetItemString(ret, key, PyString_FromString(val));
+               data = Py_None; 
+               /* FIXME data = PyString_FromString(val); */
+        PyDict_SetItemString(ret, key, data);
        }
     apr_pool_destroy(pool);
     return ret;
diff --git a/ra.c b/ra.c
index 7d90ac62149bff7a03f68e84acd4b3e9270f57ae..78a1d047628a9c7337abf725cda3eb22d6303abb 100644 (file)
--- a/ra.c
+++ b/ra.c
@@ -1092,6 +1092,7 @@ static void auth_provider_dealloc(PyObject *self)
 PyTypeObject AuthProvider_Type = { 
        PyObject_HEAD_INIT(&PyType_Type) 0,
        .tp_name = "ra.AuthProvider",
+       .tp_basicsize = sizeof(AuthProviderObject),
        .tp_dealloc = auth_provider_dealloc,
 };
 
diff --git a/wc.c b/wc.c
index fb8ff4fd2f8a04b96b8e9bb2bda405612cf2be08..af0cd85f967fbe780d20693089e7b172feaa6f4c 100644 (file)
--- a/wc.c
+++ b/wc.c
@@ -681,22 +681,22 @@ void initwc(void)
 {
        PyObject *mod;
 
-       if (PyType_Check(&Entry_Type) < 0)
+       if (PyType_Ready(&Entry_Type) < 0)
                return;
 
-       if (PyType_Check(&Adm_Type) < 0)
+       if (PyType_Ready(&Adm_Type) < 0)
                return;
 
-       if (PyType_Check(&Editor_Type) < 0)
+       if (PyType_Ready(&Editor_Type) < 0)
                return;
 
-       if (PyType_Check(&FileEditor_Type) < 0)
+       if (PyType_Ready(&FileEditor_Type) < 0)
                return;
 
-       if (PyType_Check(&DirectoryEditor_Type) < 0)
+       if (PyType_Ready(&DirectoryEditor_Type) < 0)
                return;
 
-       if (PyType_Check(&TxDeltaWindowHandler_Type) < 0)
+       if (PyType_Ready(&TxDeltaWindowHandler_Type) < 0)
                return;
 
        apr_initialize();