Make object construction compatible with Python3.
authorJelmer Vernooij <jelmer@jelmer.uk>
Sat, 9 Jul 2016 23:02:04 +0000 (23:02 +0000)
committerJelmer Vernooij <jelmer@jelmer.uk>
Sat, 9 Jul 2016 23:02:04 +0000 (23:02 +0000)
subvertpy/_ra.c
subvertpy/_ra_iter_log.c
subvertpy/client.c
subvertpy/editor.c
subvertpy/repos.c
subvertpy/util.c
subvertpy/wc.c

index 4b8453c4046294e596e6a819576d9c484c1c0aed..a8d54fe10958e51cb32c586cbd6c9dbc6d5664ae 100644 (file)
@@ -112,7 +112,7 @@ static svn_error_t *py_lock_func (void *baton, const char *path, int do_lock,
 
 /** Connection to a remote Subversion repository. */
 typedef struct {
-       PyObject_HEAD
+       PyObject_VAR_HEAD
        svn_ra_session_t *ra;
        apr_pool_t *pool;
        const char *url;
@@ -126,7 +126,7 @@ typedef struct {
 } RemoteAccessObject;
 
 typedef struct {
-       PyObject_HEAD
+       PyObject_VAR_HEAD
        const REPORTER_T *reporter;
        void *report_baton;
        apr_pool_t *pool;
@@ -295,9 +295,9 @@ static void reporter_dealloc(PyObject *self)
 }
 
 static PyTypeObject Reporter_Type = {
-       PyObject_HEAD_INIT(NULL) 0,
+       PyVarObject_HEAD_INIT(NULL, 0)
        "_ra.Reporter", /*      const char *tp_name;  For printing, in format "<module>.<name>" */
-       sizeof(ReporterObject), 
+       sizeof(ReporterObject),
        0,/*    Py_ssize_t tp_basicsize, tp_itemsize;  For allocation */
 
        /* Methods to implement standard operations */
@@ -775,10 +775,17 @@ apr_array_header_t **apr_paths, apr_array_header_t **apr_revprops)
        } else {
                int i;
                for (i = 0; i < PySequence_Size(revprops); i++) {
-                       const char *n = PyString_AsString(PySequence_GetItem(revprops, i));
-                       if (strcmp(SVN_PROP_REVISION_LOG, n) && 
-                               strcmp(SVN_PROP_REVISION_AUTHOR, n) &&
-                               strcmp(SVN_PROP_REVISION_DATE, n)) {
+                       PyObject *n = PySequence_GetItem(revprops, i);
+                       char *ns;
+
+                       ns = py_object_to_svn_string(n, *pool);
+                       if (ns == NULL) {
+                               goto fail_prep;
+                       }
+
+                       if (strcmp(SVN_PROP_REVISION_LOG, ns) && 
+                               strcmp(SVN_PROP_REVISION_AUTHOR, ns) &&
+                               strcmp(SVN_PROP_REVISION_DATE, ns)) {
                                PyErr_SetString(PyExc_NotImplementedError, 
                                                                "fetching custom revision properties not supported");
                                goto fail_prep;
@@ -2209,7 +2216,7 @@ static PyMemberDef ra_members[] = {
 };
 
 static PyTypeObject RemoteAccess_Type = {
-       PyObject_HEAD_INIT(NULL) 0,
+       PyVarObject_HEAD_INIT(NULL, 0)
        "_ra.RemoteAccess", /*  const char *tp_name;  For printing, in format "<module>.<name>" */
        sizeof(RemoteAccessObject), 
        0,/*    Py_ssize_t tp_basicsize, tp_itemsize;  For allocation */
@@ -2280,7 +2287,7 @@ static PyTypeObject RemoteAccess_Type = {
 };
 
 typedef struct {
-       PyObject_HEAD
+       PyObject_VAR_HEAD
        apr_pool_t *pool;
        svn_auth_provider_object_t *provider;
        PyObject *callback;
@@ -2296,7 +2303,7 @@ static void auth_provider_dealloc(PyObject *self)
 }
 
 static PyTypeObject AuthProvider_Type = {
-       PyObject_HEAD_INIT(NULL) 0,
+       PyVarObject_HEAD_INIT(NULL, 0)
        "_ra.AuthProvider", /*  const char *tp_name;  For printing, in format "<module>.<name>" */
        sizeof(AuthProviderObject),
        0,/*    Py_ssize_t tp_basicsize, tp_itemsize;  For allocation */
@@ -2417,7 +2424,7 @@ static PyObject *auth_get_parameter(PyObject *self, PyObject *args)
 }
 
 typedef struct {
-       PyObject_HEAD
+       PyObject_VAR_HEAD
        apr_pool_t *pool;
        char *cred_kind;
        svn_auth_iterstate_t *state;
@@ -2499,7 +2506,7 @@ static PyObject *credentials_iter_next(CredentialsIterObject *iterator)
 }
 
 static PyTypeObject CredentialsIter_Type = {
-       PyObject_HEAD_INIT(NULL) 0,
+       PyVarObject_HEAD_INIT(NULL, 0)
        "_ra.CredentialsIter", /*       const char *tp_name;  For printing, in format "<module>.<name>" */
        sizeof(CredentialsIterObject),
        0,/*    Py_ssize_t tp_basicsize, tp_itemsize;  For allocation */
@@ -2577,7 +2584,7 @@ static void auth_dealloc(PyObject *self)
 }
 
 static PyTypeObject Auth_Type = {
-       PyObject_HEAD_INIT(NULL) 0,
+       PyVarObject_HEAD_INIT(NULL, 0)
        "_ra.Auth", /*  const char *tp_name;  For printing, in format "<module>.<name>" */
        sizeof(AuthObject),
        0,/*    Py_ssize_t tp_basicsize, tp_itemsize;  For allocation */
index 81d6fa00e8da13aad23e8b9aa26ffc37a6e07416..110df3f8f2541ced6966a1360a3effb75cb78151 100644 (file)
@@ -24,7 +24,7 @@ struct log_entry {
 };
 
 typedef struct {
-       PyObject_HEAD
+       PyObject_VAR_HEAD
        svn_revnum_t start, end;
        svn_boolean_t discover_changed_paths;
        svn_boolean_t strict_node_history;
@@ -114,7 +114,7 @@ static PyObject *py_iter_append(LogIteratorObject *iter, PyObject *tuple)
 }
 
 PyTypeObject LogIterator_Type = {
-       PyObject_HEAD_INIT(NULL) 0,
+       PyVarObject_HEAD_INIT(NULL, 0)
        "_ra.LogIterator", /*   const char *tp_name;  For printing, in format "<module>.<name>" */
        sizeof(LogIteratorObject), 
        0,/*    Py_ssize_t tp_basicsize, tp_itemsize;  For allocation */
index e9599fd6490551c05f98b5babeda14911008ab21..4115371dd497fa6fdc4ab35d64c1668b31100d7a 100644 (file)
@@ -44,13 +44,13 @@ extern PyTypeObject Info_Type;
 extern PyTypeObject WCInfo_Type;
 
 typedef struct {
-    PyObject_HEAD
+    PyObject_VAR_HEAD
     svn_config_t *item;
     PyObject *parent;
 } ConfigItemObject;
 
 typedef struct {
-    PyObject_HEAD
+    PyObject_VAR_HEAD
 #if ONLY_SINCE_SVN(1, 7)
     svn_wc_info_t info;
 #else
@@ -60,7 +60,7 @@ typedef struct {
 } WCInfoObject;
 
 typedef struct {
-    PyObject_HEAD
+    PyObject_VAR_HEAD
 #if ONLY_SINCE_SVN(1, 7)
     svn_client_info2_t info;
 #else
@@ -314,12 +314,12 @@ static PyObject *py_commit_info_tuple(svn_commit_info_t *ci)
 }
 
 typedef struct {
-    PyObject_HEAD
-    svn_client_ctx_t *client;
-    apr_pool_t *pool;
-    PyObject *callbacks;
-    PyObject *py_auth;
-    PyObject *py_config;
+       PyObject_VAR_HEAD
+       svn_client_ctx_t *client;
+       apr_pool_t *pool;
+       PyObject *callbacks;
+       PyObject *py_auth;
+       PyObject *py_config;
 } ClientObject;
 
 static PyObject *client_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
@@ -1650,7 +1650,7 @@ static void config_dealloc(PyObject *obj)
 }
 
 PyTypeObject Config_Type = {
-    PyObject_HEAD_INIT(NULL) 0,
+    PyVarObject_HEAD_INIT(NULL, 0)
     "client.Config", /*    const char *tp_name;  For printing, in format "<module>.<name>" */
     sizeof(ConfigObject),  /*  tp_basicsize    */
     0,  /*    tp_itemsize;  For allocation */
@@ -1718,7 +1718,7 @@ static void configitem_dealloc(PyObject *self)
 }
 
 PyTypeObject ConfigItem_Type = {
-    PyObject_HEAD_INIT(NULL) 0,
+    PyVarObject_HEAD_INIT(NULL, 0)
     "client.ConfigItem", /*    const char *tp_name;  For printing, in format "<module>.<name>" */
     sizeof(ConfigItemObject),
     0,/*    Py_ssize_t tp_basicsize, tp_itemsize;  For allocation */
@@ -1772,7 +1772,7 @@ static PyGetSetDef info_getsetters[] = {
 };
 
 PyTypeObject Info_Type = {
-    PyObject_HEAD_INIT(NULL) 0,
+    PyVarObject_HEAD_INIT(NULL, 0)
     "client.Info", /*   const char *tp_name;  For printing, in format "<module>.<name>" */
     sizeof(InfoObject),
     0,/*    Py_ssize_t tp_basicsize, tp_itemsize;  For allocation */
@@ -1872,7 +1872,7 @@ static void wcinfo_dealloc(PyObject *self)
 }
 
 PyTypeObject WCInfo_Type = {
-    PyObject_HEAD_INIT(NULL) 0,
+    PyVarObject_HEAD_INIT(NULL, 0)
     "client.Info", /*   const char *tp_name;  For printing, in format "<module>.<name>" */
     sizeof(WCInfoObject),
     0,/*    Py_ssize_t tp_basicsize, tp_itemsize;  For allocation */
@@ -1934,7 +1934,7 @@ PyTypeObject WCInfo_Type = {
 };
 
 PyTypeObject Client_Type = {
-    PyObject_HEAD_INIT(NULL) 0,
+    PyVarObject_HEAD_INIT(NULL, 0)
     /*    PyObject_VAR_HEAD    */
     "client.Client", /*    const char *tp_name;  For printing, in format "<module>.<name>" */
     sizeof(ClientObject),
index f62371f2f6fa987d3244d0dd4c341b345b13cd49..1bd3e6c3bd6c7b65223896fb106bb623a3059f4d 100644 (file)
@@ -26,7 +26,7 @@
 #include "util.h"
 
 typedef struct EditorObject {
-       PyObject_HEAD
+       PyObject_VAR_HEAD
        const svn_delta_editor_t *editor;
        void *baton;
        apr_pool_t *pool;
@@ -168,7 +168,7 @@ static void py_txdelta_window_handler_dealloc(PyObject *self)
 }
 
 PyTypeObject TxDeltaWindowHandler_Type = {
-       PyObject_HEAD_INIT(NULL) 0,
+       PyVarObject_HEAD_INIT(NULL, 0)
        "_ra.TxDeltaWindowHandler", /*  const char *tp_name;  For printing, in format "<module>.<name>" */
        sizeof(TxDeltaWindowHandlerObject), 
        0,/*    Py_ssize_t tp_basicsize, tp_itemsize;  For allocation */
@@ -306,7 +306,7 @@ static PyMethodDef py_file_editor_methods[] = {
 };
 
 PyTypeObject FileEditor_Type = { 
-       PyObject_HEAD_INIT(NULL) 0, 
+       PyVarObject_HEAD_INIT(NULL, 0)
        "_ra.FileEditor", /*    const char *tp_name;  For printing, in format "<module>.<name>" */
        sizeof(EditorObject), 
        0,/*    Py_ssize_t tp_basicsize, tp_itemsize;  For allocation */
@@ -719,7 +719,7 @@ static PyMethodDef py_dir_editor_methods[] = {
 };
 
 PyTypeObject DirectoryEditor_Type = {
-       PyObject_HEAD_INIT(NULL) 0,
+       PyVarObject_HEAD_INIT(NULL, 0)
        "_ra.DirEditor", /*     const char *tp_name;  For printing, in format "<module>.<name>" */
        sizeof(EditorObject),
        0,/*    Py_ssize_t tp_basicsize, tp_itemsize;  For allocation */
@@ -921,7 +921,7 @@ static PyMethodDef py_editor_methods[] = {
 };
 
 PyTypeObject Editor_Type = { 
-       PyObject_HEAD_INIT(NULL) 0,
+       PyVarObject_HEAD_INIT(NULL, 0)
        "_ra.Editor", /*        const char *tp_name;  For printing, in format "<module>.<name>" */
        sizeof(EditorObject), 
        0,/*    Py_ssize_t tp_basicsize, tp_itemsize;  For allocation */
index 83e839b2f2cf37593dab5ccd1af2e3ad06e6d4cb..c5874280e31c4861203616268730850c20e29c64 100644 (file)
@@ -32,9 +32,9 @@ extern PyTypeObject FileSystem_Type;
 extern PyTypeObject Stream_Type;
 
 typedef struct { 
-       PyObject_HEAD
-    apr_pool_t *pool;
-    svn_repos_t *repos;
+       PyObject_VAR_HEAD
+       apr_pool_t *pool;
+       svn_repos_t *repos;
 } RepositoryObject;
 
 static PyObject *repos_create(PyObject *self, PyObject *args)
@@ -119,13 +119,13 @@ static PyObject *repos_init(PyTypeObject *type, PyObject *args, PyObject *kwargs
 }
 
 typedef struct {
-       PyObject_HEAD
+       PyObject_VAR_HEAD
        apr_pool_t *pool;
        svn_fs_root_t *root;
 } FileSystemRootObject;
 
 typedef struct {
-       PyObject_HEAD
+       PyObject_VAR_HEAD
        RepositoryObject *repos;
        svn_fs_t *fs;
 } FileSystemObject;
@@ -252,7 +252,7 @@ static void fs_dealloc(PyObject *self)
 }
 
 PyTypeObject FileSystem_Type = {
-       PyObject_HEAD_INIT(NULL) 0,
+       PyVarObject_HEAD_INIT(NULL, 0)
        "repos.FileSystem", /*  const char *tp_name;  For printing, in format "<module>.<name>" */
        sizeof(FileSystemObject), 
        0,/*    Py_ssize_t tp_basicsize, tp_itemsize;  For allocation */
@@ -517,7 +517,7 @@ static PyMethodDef repos_methods[] = {
 };
 
 PyTypeObject Repository_Type = {
-       PyObject_HEAD_INIT(NULL) 0,
+       PyVarObject_HEAD_INIT(NULL, 0)
        "repos.Repository", /*  const char *tp_name;  For printing, in format "<module>.<name>" */
        sizeof(RepositoryObject), 
        0,/*    Py_ssize_t tp_basicsize, tp_itemsize;  For allocation */
@@ -868,7 +868,7 @@ static PyMethodDef fs_root_methods[] = {
 };
 
 PyTypeObject FileSystemRoot_Type = {
-       PyObject_HEAD_INIT(NULL) 0,
+       PyVarObject_HEAD_INIT(NULL, 0)
        "repos.FileSystemRoot", /*      const char *tp_name;  For printing, in format "<module>.<name>" */
        sizeof(FileSystemRootObject), 
        0,/*    Py_ssize_t tp_basicsize, tp_itemsize;  For allocation */
index e4ed2cd7bcd8618d13e613c3443b4571dc7df0f3..e5893e85e2f29fd3d23e4f0847abfa16c43416d1 100644 (file)
@@ -94,7 +94,7 @@ char *py_object_to_svn_string(PyObject *obj, apr_pool_t *pool)
 
 char *py_object_to_svn_uri(PyObject *obj, apr_pool_t *pool)
 {
-       char *ret;
+       const char *ret;
        PyObject *bytes_obj = NULL;
 
        if (PyUnicode_Check(obj)) {
@@ -993,7 +993,7 @@ static PyMethodDef stream_methods[] = {
 };
 
 PyTypeObject Stream_Type = {
-       PyObject_HEAD_INIT(NULL) 0,
+       PyVarObject_HEAD_INIT(NULL, 0)
        "repos.Stream", /*      const char *tp_name;  For printing, in format "<module>.<name>" */
        sizeof(StreamObject), 
        0,/*    Py_ssize_t tp_basicsize, tp_itemsize;  For allocation */
index 6012609519b43043e9ebf733197973a89409d296..6ac1e04c13acf763feb09b1f0769f68cebc09259 100644 (file)
@@ -121,7 +121,7 @@ svn_error_t *svn_wc_queue_committed(svn_wc_committed_queue_t **queue,
 #endif
 
 typedef struct {
-       PyObject_HEAD
+       PyObject_VAR_HEAD
        apr_pool_t *pool;
        svn_wc_committed_queue_t *queue;
 } CommittedQueueObject;
@@ -340,7 +340,7 @@ void py_wc_notify_func(void *baton, const svn_wc_notify_t *notify, apr_pool_t *p
 }
 
 typedef struct {
-       PyObject_HEAD
+       PyObject_VAR_HEAD
        apr_pool_t *pool;
        svn_wc_entry_t entry;
 } EntryObject;
@@ -382,7 +382,7 @@ static PyMemberDef entry_members[] = {
 };
 
 static PyTypeObject Entry_Type = {
-       PyObject_HEAD_INIT(NULL) 0,
+       PyVarObject_HEAD_INIT(NULL, 0)
        "wc.Entry", /*  const char *tp_name;  For printing, in format "<module>.<name>" */
        sizeof(EntryObject), 
        0,/*    Py_ssize_t tp_basicsize, tp_itemsize;  For allocation */
@@ -459,7 +459,7 @@ static PyObject *py_entry(const svn_wc_entry_t *entry)
 }
 
 typedef struct {
-       PyObject_HEAD
+       PyObject_VAR_HEAD
        apr_pool_t *pool;
        svn_wc_status2_t status;
        PyObject *entry;
@@ -493,7 +493,7 @@ static PyMemberDef status_members[] = {
 };
 
 static PyTypeObject Status_Type = {
-       PyObject_HEAD_INIT(NULL) 0,
+       PyVarObject_HEAD_INIT(NULL, 0)
        "wc.Status", /* const char *tp_name;  For printing, in format "<module>.<name>" */
        sizeof(StatusObject), 
        0,/*    Py_ssize_t tp_basicsize, tp_itemsize;  For allocation */
@@ -582,7 +582,7 @@ static PyObject *py_status(const svn_wc_status2_t *status)
 }
 
 typedef struct {
-       PyObject_HEAD
+       PyObject_VAR_HEAD
        svn_wc_adm_access_t *adm;
        apr_pool_t *pool;
 } AdmObject;
@@ -2105,7 +2105,7 @@ static PyMethodDef adm_methods[] = {
 };
 
 static PyTypeObject Adm_Type = {
-       PyObject_HEAD_INIT(NULL) 0,
+       PyVarObject_HEAD_INIT(NULL, 0)
        "wc.WorkingCopy", /*    const char *tp_name;  For printing, in format "<module>.<name>" */
        sizeof(AdmObject), 
        0,/*    Py_ssize_t tp_basicsize, tp_itemsize;  For allocation */
@@ -2274,7 +2274,7 @@ static PyMethodDef committed_queue_methods[] = {
 };
 
 static PyTypeObject CommittedQueue_Type = {
-       PyObject_HEAD_INIT(NULL) 0,
+       PyVarObject_HEAD_INIT(NULL, 0)
        "wc.CommittedQueue", /* const char *tp_name;  For printing, in format "<module>.<name>" */
        sizeof(CommittedQueueObject), 
        0,/*    Py_ssize_t tp_basicsize, tp_itemsize;  For allocation */