Rev 1057: Initialize more svn libraries. in file:///data/jelmer/bzr-svn/cext/

Jelmer Vernooij jelmer at samba.org
Tue Jun 3 00:12:42 BST 2008


At file:///data/jelmer/bzr-svn/cext/

------------------------------------------------------------
revno: 1057
revision-id: jelmer at samba.org-20080602231241-bglulwmxw1at88dp
parent: jelmer at samba.org-20080602231220-2xzilofx2jv4ficj
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: cext
timestamp: Tue 2008-06-03 01:12:41 +0200
message:
  Initialize more svn libraries.
modified:
  client.c                       client.pyx-20080313235339-wbyjbw2namuiql8f-1
  core.c                         core.pyx-20080313210413-17k59slolpfe5kdq-1
  ra.c                           ra.pyx-20080313140933-qybkqaxe3m4mcll7-1
  repos.c                        repos.pyx-20080314114432-g2b5lqe776tkbl4k-1
=== modified file 'client.c'
--- a/client.c	2008-06-02 21:12:51 +0000
+++ b/client.c	2008-06-02 23:12:41 +0000
@@ -56,9 +56,18 @@
 svn_error_t *py_log_msg_func2(const char **log_msg, const char **tmp_file, const apr_array_header_t *commit_items, void *baton, apr_pool_t *pool)
 {
     PyObject *py_commit_items, *ret, *py_log_msg, *py_tmp_file;
+	int i;
     if (baton == Py_None)
         return NULL;
     py_commit_items = PyList_New(commit_items->nelts);
+	if (py_commit_items == NULL)
+		return py_svn_error();
+	for (i = 0; i < commit_items->nelts; i++) {
+		svn_client_commit_item_t *commit_item = 
+			(svn_client_commit_item_t *)(commit_items->elts + i * commit_items->elt_size);
+		if (PyList_SetItem(py_commit_items, i, Py_BuildValue("(sizlzi)", commit_item->path, commit_item->kind, commit_item->url, commit_item->revision, commit_item->copyfrom_url, commit_item->state_flags)) != 0)
+			return py_svn_error();
+	}
     ret = PyObject_CallFunction(baton, "O", py_commit_items);
 	if (ret == NULL)
 		return py_svn_error();
@@ -309,11 +318,12 @@
             recurse, ignore_externals, client->client, client->pool)))
         return NULL;
     ret = PyList_New(result_revs->nelts);
-    ret_rev = (svn_revnum_t *)apr_array_pop(result_revs);
-    while (ret_rev != NULL) {
-        PyList_SetItem(ret, i, PyLong_FromLong(*ret_rev));
-        i++;
-        ret_rev = (svn_revnum_t *)apr_array_pop(result_revs);
+	if (ret == NULL)
+		return NULL;
+	for (i = 0; i < result_revs->nelts; i++) {
+		ret_rev = (svn_revnum_t *)(result_revs->elts + (i * result_revs->elt_size));
+        if (PyList_SetItem(ret, i, PyLong_FromLong(*ret_rev)) != 0)
+			return NULL;
     }
     return ret;
 }

=== modified file 'core.c'
--- a/core.c	2008-06-02 21:12:51 +0000
+++ b/core.c	2008-06-02 23:12:41 +0000
@@ -23,6 +23,7 @@
 #include <svn_time.h>
 #include <svn_config.h>
 #include <svn_io.h>
+#include <svn_utf.h>
 
 #include "util.h"
 
@@ -98,9 +99,12 @@
 
 void initcore(void)
 {
+	static apr_pool_t *pool;
 	PyObject *mod;
 
 	apr_initialize();
+	pool = Pool(NULL);
+	svn_utf_initialize(pool);
 
 	mod = Py_InitModule3("core", core_methods, "Core functions");
 	if (mod == NULL)

=== modified file 'ra.c'
--- a/ra.c	2008-06-02 21:12:51 +0000
+++ b/ra.c	2008-06-02 23:12:41 +0000
@@ -1368,6 +1368,7 @@
 
 void initra(void)
 {
+	static apr_pool_t *pool;
 	PyObject *mod;
 
 	if (PyType_Ready(&RemoteAccess_Type) < 0)
@@ -1395,6 +1396,8 @@
 		return;
 
 	apr_initialize();
+	pool = Pool(NULL);
+	svn_ra_initialize(pool);
 
 	mod = Py_InitModule3("ra", ra_module_methods, "Remote Access");
 	if (mod == NULL)

=== modified file 'repos.c'
--- a/repos.c	2008-06-02 20:15:47 +0000
+++ b/repos.c	2008-06-02 23:12:41 +0000
@@ -205,6 +205,7 @@
 
 void initrepos(void)
 {
+	static apr_pool_t *pool;
 	PyObject *mod;
 
 	if (PyType_Ready(&Repository_Type) < 0)
@@ -214,6 +215,8 @@
 		return;
 
 	apr_initialize();
+	pool = Pool(NULL);
+	svn_fs_initialize(pool);
 
 	mod = Py_InitModule3("repos", repos_module_methods, "Local repository management");
 	if (mod == NULL)




More information about the bazaar-commits mailing list