You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2013/07/25 16:57:23 UTC
svn commit: r1506999 [1/2] - in /subversion/branches/fsfs-improvements: ./
build/generator/ contrib/client-side/emacs/
subversion/bindings/cxxhl/src/aprwrap/ subversion/bindings/javahl/native/
subversion/bindings/swig/ subversion/bindings/swig/include/...
Author: stefan2
Date: Thu Jul 25 14:57:22 2013
New Revision: 1506999
URL: http://svn.apache.org/r1506999
Log:
On the fsfs-improvements branch: sync with /trunk up to r1506994.
Added:
subversion/branches/fsfs-improvements/subversion/svn/youngest-cmd.c
- copied unchanged from r1506994, subversion/trunk/subversion/svn/youngest-cmd.c
Modified:
subversion/branches/fsfs-improvements/ (props changed)
subversion/branches/fsfs-improvements/build.conf
subversion/branches/fsfs-improvements/build/generator/gen_base.py
subversion/branches/fsfs-improvements/build/generator/gen_win.py
subversion/branches/fsfs-improvements/configure.ac
subversion/branches/fsfs-improvements/contrib/client-side/emacs/vc-svn.el
subversion/branches/fsfs-improvements/subversion/bindings/cxxhl/src/aprwrap/array.hpp
subversion/branches/fsfs-improvements/subversion/bindings/cxxhl/src/aprwrap/hash.hpp
subversion/branches/fsfs-improvements/subversion/bindings/cxxhl/src/aprwrap/impl.cpp
subversion/branches/fsfs-improvements/subversion/bindings/cxxhl/src/aprwrap/pool.hpp
subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/RemoteSession.cpp
subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/RemoteSession.h
subversion/branches/fsfs-improvements/subversion/bindings/swig/core.i
subversion/branches/fsfs-improvements/subversion/bindings/swig/include/svn_types.swg
subversion/branches/fsfs-improvements/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
subversion/branches/fsfs-improvements/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h
subversion/branches/fsfs-improvements/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
subversion/branches/fsfs-improvements/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h
subversion/branches/fsfs-improvements/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c
subversion/branches/fsfs-improvements/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h
subversion/branches/fsfs-improvements/subversion/bindings/swig/svn_delta.i
subversion/branches/fsfs-improvements/subversion/bindings/swig/svn_ra.i
subversion/branches/fsfs-improvements/subversion/include/svn_fs.h
subversion/branches/fsfs-improvements/subversion/libsvn_fs_base/dag.c
subversion/branches/fsfs-improvements/subversion/libsvn_repos/dump.c
subversion/branches/fsfs-improvements/subversion/libsvn_subr/cmdline.c
subversion/branches/fsfs-improvements/subversion/svn/cl.h
subversion/branches/fsfs-improvements/subversion/svn/status-cmd.c
subversion/branches/fsfs-improvements/subversion/svn/status.c
subversion/branches/fsfs-improvements/subversion/svn/svn.c
subversion/branches/fsfs-improvements/subversion/svnadmin/svnadmin.c
subversion/branches/fsfs-improvements/subversion/tests/cmdline/basic_tests.py
subversion/branches/fsfs-improvements/subversion/tests/cmdline/getopt_tests_data/svn--help_stdout
subversion/branches/fsfs-improvements/subversion/tests/cmdline/getopt_tests_data/svn_help_stdout
subversion/branches/fsfs-improvements/subversion/tests/cmdline/stat_tests.py
subversion/branches/fsfs-improvements/tools/buildbot/slaves/win32-SharpSvn/svn-config.cmd.template
subversion/branches/fsfs-improvements/tools/buildbot/slaves/win32-SharpSvn/svntest-bindings.cmd
subversion/branches/fsfs-improvements/tools/buildbot/slaves/win32-SharpSvn/svntest-build-bindings.cmd
subversion/branches/fsfs-improvements/win-tests.py
Propchange: subversion/branches/fsfs-improvements/
------------------------------------------------------------------------------
Merged /subversion/trunk:r1505657-1506994
Modified: subversion/branches/fsfs-improvements/build.conf
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/build.conf?rev=1506999&r1=1506998&r2=1506999&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/build.conf (original)
+++ subversion/branches/fsfs-improvements/build.conf Thu Jul 25 14:57:22 2013
@@ -305,7 +305,7 @@ msvc-export = svn_ra.h private\svn_ra_pr
type = ra-module
path = subversion/libsvn_ra_serf
install = serf-lib
-libs = libsvn_delta libsvn_subr aprutil apriconv apr serf xml
+libs = libsvn_delta libsvn_subr aprutil apriconv apr serf xml zlib
msvc-libs = secur32.lib
msvc-static = yes
@@ -446,7 +446,6 @@ sources = core.i
libs = libsvn_swig_py libsvn_swig_perl libsvn_swig_ruby
libsvn_diff libsvn_subr apr
description = Subversion core library bindings
-include-runtime = yes
[swig_client]
type = swig
@@ -523,6 +522,7 @@ install = swig-py-lib
# need special build rule to include -DSWIGPYTHON
compile-cmd = $(COMPILE_SWIG_PY)
msvc-static = no
+msvc-export = ../bindings/swig/python/libsvn_swig_py/swigutil_py.h
# SWIG utility library for Perl modules
[libsvn_swig_perl]
@@ -533,7 +533,8 @@ libs = libsvn_delta libsvn_subr apriconv
install = swig-pl-lib
# need special build rule to include
compile-cmd = $(COMPILE_SWIG_PL)
-msvc-static = yes
+msvc-static = no
+msvc-export = ../bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h
# SWIG utility library for Ruby modules
[libsvn_swig_ruby]
@@ -546,6 +547,7 @@ install = swig-rb-lib
# need special build rule to include
compile-cmd = $(COMPILE_SWIG_RB)
msvc-static = no
+msvc-export = ../bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.h
# ----------------------------------------------------------------------------
#
@@ -679,7 +681,7 @@ description = Unit tests for Subversion
when = SVN_USE_GMOCK
type = exe
path = subversion/bindings/cxxhl
-libs = libsvncxxhl libgmock libsvn_subr
+libs = libsvncxxhl libgmock libsvn_subr apr
sources = tests/*.cpp
install = tests
compile-cmd = $(COMPILE_CXXHL_GMOCK_CXX)
@@ -1338,13 +1340,13 @@ lang = python
[__SWIG_PERL__]
type = swig_project
path = build/win32
-libs = swig_client swig_delta swig_fs swig_ra swig_repos swig_wc swig_core
+libs = swig_client swig_delta swig_diff swig_fs swig_ra swig_repos swig_wc swig_core
lang = perl
[__SWIG_RUBY__]
type = swig_project
path = build/win32
-libs = swig_client swig_delta swig_fs swig_ra swig_repos swig_wc swig_core
+libs = swig_client swig_delta swig_diff swig_fs swig_ra swig_repos swig_wc swig_core
lang = ruby
[__JAVAHL__]
Modified: subversion/branches/fsfs-improvements/build/generator/gen_base.py
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/build/generator/gen_base.py?rev=1506999&r1=1506998&r2=1506999&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/build/generator/gen_base.py (original)
+++ subversion/branches/fsfs-improvements/build/generator/gen_base.py Thu Jul 25 14:57:22 2013
@@ -589,6 +589,12 @@ class TargetLib(TargetLinked):
self.msvc_fake = options.get('msvc-fake') == 'yes' # has fake target
self.msvc_export = options.get('msvc-export', '').split()
+ def disable_shared(self):
+ "tries to disable building as a shared library,"
+
+ self.msvc_static = True
+ self.msvc_export = []
+
class TargetApacheMod(TargetLib):
def __init__(self, name, options, gen_obj):
@@ -650,7 +656,6 @@ class TargetSWIG(TargetLib):
TargetLib.__init__(self, name, options, gen_obj)
self.lang = lang
self.desc = self.desc + ' for ' + lang_full_name[lang]
- self.include_runtime = options.get('include-runtime') == 'yes'
### hmm. this is Makefile-specific
self.link_cmd = '$(LINK_%s_WRAPPER)' % lang_abbrev[lang].upper()
@@ -733,6 +738,12 @@ class TargetSWIGLib(TargetLib):
return [ self.target ]
return [ ]
+ def disable_shared(self):
+ "disables building shared libraries"
+
+ return # Explicit NO-OP
+
+
class TargetProject(Target):
def __init__(self, name, options, gen_obj):
Target.__init__(self, name, options, gen_obj)
Modified: subversion/branches/fsfs-improvements/build/generator/gen_win.py
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/build/generator/gen_win.py?rev=1506999&r1=1506998&r2=1506999&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/build/generator/gen_win.py (original)
+++ subversion/branches/fsfs-improvements/build/generator/gen_win.py Thu Jul 25 14:57:22 2013
@@ -247,7 +247,7 @@ class WinGeneratorBase(gen_win_dependenc
install_targets.append(self.create_fake_target(target))
if target.msvc_export:
if self.disable_shared:
- target.msvc_static = True
+ target.disable_shared()
else:
dll_targets.append(self.create_dll_target(target))
install_targets.extend(dll_targets)
@@ -513,8 +513,7 @@ class WinGeneratorBase(gen_win_dependenc
return self.get_output_dir(target)
def get_def_file(self, target):
- if isinstance(target, gen_base.TargetLib) and target.msvc_export \
- and not self.disable_shared:
+ if isinstance(target, gen_base.TargetLib) and target.msvc_export:
return target.name + ".def"
return None
@@ -676,7 +675,7 @@ class WinGeneratorBase(gen_win_dependenc
# every dll dependency we first check to see if its corresponding
# static library is already in the list of dependencies. If it is,
# we don't add the dll to the list.
- if is_lib and dep.msvc_export and not self.disable_shared:
+ if is_lib and dep.msvc_export:
static_dep = self.graph.get_sources(gen_base.DT_LINK, dep.name)[0]
if static_dep in deps:
continue
@@ -795,8 +794,8 @@ class WinGeneratorBase(gen_win_dependenc
fakeincludes.append(os.path.join(self.swig_libdir, lang_subdir))
fakeincludes.append(self.swig_libdir)
- if target.name.find('cxxhl') != -1:
- fakeincludes.append(self.path("subversion/bindings/cxxhl/include"))
+ if 'cxxhl' in target.name:
+ fakeincludes.append("subversion/bindings/cxxhl/include")
return gen_base.unique(map(self.apath, fakeincludes))
Modified: subversion/branches/fsfs-improvements/configure.ac
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/configure.ac?rev=1506999&r1=1506998&r2=1506999&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/configure.ac (original)
+++ subversion/branches/fsfs-improvements/configure.ac Thu Jul 25 14:57:22 2013
@@ -632,8 +632,8 @@ dnl Googlemock -----------------
AC_ARG_ENABLE([gmock],
AS_HELP_STRING([--disable-gmock],
[Do not use the Googlemock testing framework]),
- [enable_gmock=yes],
- [enable_gmock="$withval"])
+ [],
+ [enable_gmock=yes])
AC_SUBST([GMOCK_SRCDIR], [$abs_srcdir/gmock-fused])
AC_MSG_CHECKING([whether use Googlemock])
Modified: subversion/branches/fsfs-improvements/contrib/client-side/emacs/vc-svn.el
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/contrib/client-side/emacs/vc-svn.el?rev=1506999&r1=1506998&r2=1506999&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/contrib/client-side/emacs/vc-svn.el (original)
+++ subversion/branches/fsfs-improvements/contrib/client-side/emacs/vc-svn.el Thu Jul 25 14:57:22 2013
@@ -125,10 +125,7 @@
(defun vc-svn-registered (file)
"Return true if FILE is registered under Subversion."
- ;; First, a quick false positive test: is there a `.svn/entries' file?
- (and (file-exists-p (expand-file-name ".svn/entries"
- (file-name-directory file)))
- (not (null (vc-svn-run-status file)))))
+ (not (null (vc-svn-run-status file))))
(put 'vc-svn-with-output-buffer 'lisp-indent-function 0)
Modified: subversion/branches/fsfs-improvements/subversion/bindings/cxxhl/src/aprwrap/array.hpp
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/bindings/cxxhl/src/aprwrap/array.hpp?rev=1506999&r1=1506998&r2=1506999&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/bindings/cxxhl/src/aprwrap/array.hpp (original)
+++ subversion/branches/fsfs-improvements/subversion/bindings/cxxhl/src/aprwrap/array.hpp Thu Jul 25 14:57:22 2013
@@ -67,7 +67,7 @@ public:
/**
* Create a new proxy for the APR array @a array.
*/
- explicit Array(apr_array_header_t* array) throw(std::invalid_argument)
+ explicit Array(apr_array_header_t* array)
: m_array(array)
{
if (m_array->elt_size != sizeof(value_type))
@@ -103,7 +103,7 @@ public:
* @return An immutable reference to the array element at @a index.
* Like operator[] but perfoms a range check on the index.
*/
- const value_type& at(size_type index) const throw(std::out_of_range)
+ const value_type& at(size_type index) const
{
if (index < 0 || index >= size())
throw std::out_of_range(_("APR array index is out of range"));
@@ -122,7 +122,7 @@ public:
* @return A mutable reference to the array element at @a index.
* Like operator[] but perfoms a range check on the index.
*/
- value_type& at(size_type index) throw(std::out_of_range)
+ value_type& at(size_type index)
{
if (index < 0 || index >= size())
throw std::out_of_range(_("APR array index is out of range"));
@@ -228,7 +228,6 @@ public:
* Create a new proxy for the APR array @a array.
*/
explicit ConstArray(const apr_array_header_t* array)
- throw(std::invalid_argument)
: inherited(const_cast<apr_array_header_t*>(array))
{}
@@ -260,7 +259,7 @@ public:
* @return An immutable reference to the array element at @a index.
* Like operator[] but perfoms a range check on the index.
*/
- const value_type& at(size_type index) const throw(std::out_of_range)
+ const value_type& at(size_type index) const
{
return inherited::at(index);
}
Modified: subversion/branches/fsfs-improvements/subversion/bindings/cxxhl/src/aprwrap/hash.hpp
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/bindings/cxxhl/src/aprwrap/hash.hpp?rev=1506999&r1=1506998&r2=1506999&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/bindings/cxxhl/src/aprwrap/hash.hpp (original)
+++ subversion/branches/fsfs-improvements/subversion/bindings/cxxhl/src/aprwrap/hash.hpp Thu Jul 25 14:57:22 2013
@@ -250,7 +250,7 @@ public:
/**
* Conversion constructor used by the derived iteration class.
*/
- explicit Key(const inherited::Key& that) throw()
+ explicit Key(const inherited& that) throw()
: inherited(that)
{}
};
Modified: subversion/branches/fsfs-improvements/subversion/bindings/cxxhl/src/aprwrap/impl.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/bindings/cxxhl/src/aprwrap/impl.cpp?rev=1506999&r1=1506998&r2=1506999&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/bindings/cxxhl/src/aprwrap/impl.cpp (original)
+++ subversion/branches/fsfs-improvements/subversion/bindings/cxxhl/src/aprwrap/impl.cpp Thu Jul 25 14:57:22 2013
@@ -40,7 +40,7 @@ namespace apr {
// Pool implementation
//
-apr_pool_t* Pool::get_root_pool() throw(cxxhl::InternalError)
+apr_pool_t* Pool::get_root_pool()
{
static const svn_atomic_t NONE = 0;
static const svn_atomic_t START = 1;
Modified: subversion/branches/fsfs-improvements/subversion/bindings/cxxhl/src/aprwrap/pool.hpp
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/bindings/cxxhl/src/aprwrap/pool.hpp?rev=1506999&r1=1506998&r2=1506999&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/bindings/cxxhl/src/aprwrap/pool.hpp (original)
+++ subversion/branches/fsfs-improvements/subversion/bindings/cxxhl/src/aprwrap/pool.hpp Thu Jul 25 14:57:22 2013
@@ -46,7 +46,7 @@ public:
/**
* Create a pool as a child of the applications' root pool.
*/
- Pool() throw(cxxhl::InternalError)
+ Pool()
: m_pool(svn_pool_create(get_root_pool()))
{}
@@ -93,7 +93,7 @@ public:
}
private:
- static apr_pool_t* get_root_pool() throw(cxxhl::InternalError);
+ static apr_pool_t* get_root_pool();
apr_pool_t* const m_pool;
};
Modified: subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/RemoteSession.cpp
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/RemoteSession.cpp?rev=1506999&r1=1506998&r2=1506999&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/RemoteSession.cpp (original)
+++ subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/RemoteSession.cpp Thu Jul 25 14:57:22 2013
@@ -125,7 +125,7 @@ RemoteSession::open(jint jretryAttempts,
const char* url, const char* uuid,
const char* configDirectory, jobject jconfigHandler,
const char* usernameStr, const char* passwordStr,
- Prompter* prompter, jobject jprogress)
+ Prompter*& prompter, jobject jprogress)
{
/*
* Initialize ra layer if we have not done so yet
@@ -168,7 +168,7 @@ RemoteSession::RemoteSession(jobject* jt
const char* configDirectory,
jobject jconfigHandler,
const char* username, const char* password,
- Prompter* prompter, jobject jprogress)
+ Prompter*& prompter, jobject jprogress)
: m_session(NULL), m_context(NULL)
{
// Create java session object
@@ -198,6 +198,14 @@ RemoteSession::RemoteSession(jobject* jt
if (JNIUtil::isJavaExceptionThrown())
return;
+ // Avoid double-free in RemoteSession::open and
+ // SVNClient::openRemoteSession if the svn_ra_open call fails. The
+ // prompter object is now owned by m_context.
+ //
+ // FIXME: Should be using smart pointers, really -- but JavaHL
+ // currently doesn't. Future enhancements FTW.
+ prompter = NULL;
+
const char* corrected_url = NULL;
bool cycle_detected = false;
attempt_set attempted;
Modified: subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/RemoteSession.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/RemoteSession.h?rev=1506999&r1=1506998&r2=1506999&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/RemoteSession.h (original)
+++ subversion/branches/fsfs-improvements/subversion/bindings/javahl/native/RemoteSession.h Thu Jul 25 14:57:22 2013
@@ -55,7 +55,7 @@ class RemoteSession : public SVNBase
const char* configDirectory,
jobject jconfigHandler,
const char* username, const char* password,
- Prompter* prompter, jobject jprogress);
+ Prompter*& prompter, jobject jprogress);
~RemoteSession();
void cancelOperation() const { m_context->cancelOperation(); }
@@ -113,7 +113,7 @@ class RemoteSession : public SVNBase
const char* configDirectory,
jobject jconfigHandler,
const char* username, const char* password,
- Prompter* prompter, jobject jprogress);
+ Prompter*& prompter, jobject jprogress);
svn_ra_session_t* m_session;
RemoteSessionContext* m_context;
Modified: subversion/branches/fsfs-improvements/subversion/bindings/swig/core.i
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/bindings/swig/core.i?rev=1506999&r1=1506998&r2=1506999&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/bindings/swig/core.i (original)
+++ subversion/branches/fsfs-improvements/subversion/bindings/swig/core.i Thu Jul 25 14:57:22 2013
@@ -514,7 +514,8 @@
else if ($input == Py_None) {
$1 = NULL;
}
- else if (svn_swig_ConvertPtr($input, (void **)&$1, $descriptor(svn_auth_ssl_server_cert_info_t *)) == 0) {
+ else if (svn_swig_py_convert_ptr($input, (void **)&$1,
+ $descriptor(svn_auth_ssl_server_cert_info_t *)) == 0) {
}
else {
PyErr_SetString(PyExc_TypeError, "not a known type");
@@ -644,28 +645,20 @@ typedef int apr_status_t;
#ifdef SWIGPERL
apr_pool_t *current_pool;
-#if SWIG_VERSION <= 0x010324
-%{
-#define SVN_SWIGEXPORT(t) SWIGEXPORT(t)
-%}
-#else
-%{
-#define SVN_SWIGEXPORT(t) SWIGEXPORT t
-%}
-#endif
-
%{
+/* ### Eventually this should go away. This is not thread safe and a very
+ ### good example on HOW NOT TO USE pools */
static apr_pool_t *current_pool = 0;
-SVN_SWIGEXPORT(apr_pool_t *)
-svn_swig_pl_get_current_pool (void)
+static apr_pool_t *
+core_get_current_pool (void)
{
return current_pool;
}
-SVN_SWIGEXPORT(void)
-svn_swig_pl_set_current_pool (apr_pool_t *pool)
+static void
+core_set_current_pool (apr_pool_t *pool)
{
current_pool = pool;
}
@@ -869,10 +862,8 @@ static void svn_auth_set_gnome_keyring_u
#include "svn_private_config.h"
%}
%init %{
-#if defined(SVN_AVOID_CIRCULAR_LINKAGE_AT_ALL_COSTS_HACK)
- svn_swig_pl_bind_current_pool_fns (&svn_swig_pl_get_current_pool,
- &svn_swig_pl_set_current_pool);
-#endif
+ svn_swig_pl__bind_current_pool_fns(&core_get_current_pool,
+ &core_set_current_pool);
%}
#endif
Modified: subversion/branches/fsfs-improvements/subversion/bindings/swig/include/svn_types.swg
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/bindings/swig/include/svn_types.swg?rev=1506999&r1=1506998&r2=1506999&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/bindings/swig/include/svn_types.swg (original)
+++ subversion/branches/fsfs-improvements/subversion/bindings/swig/include/svn_types.swg Thu Jul 25 14:57:22 2013
@@ -71,8 +71,8 @@
#ifdef SWIGPYTHON
%typemap(argout) SWIGTYPE **OUTPARAM {
- %append_output(svn_swig_NewPointerObj(*$1, $*1_descriptor,
- _global_py_pool, args));
+ %append_output(svn_swig_py_new_pointer_obj(*$1, $*1_descriptor,
+ _global_py_pool, args));
}
#else
%typemap(argout) SWIGTYPE **OUTPARAM {
@@ -508,15 +508,15 @@ svn_ ## TYPE ## _swig_rb_closed(VALUE se
%typemap(in) POINTER_TYPES
{
- $1 = ($1_ltype)svn_swig_MustGetPtr($input, $descriptor, $svn_argnum);
+ $1 = ($1_ltype)svn_swig_py_must_get_ptr($input, $descriptor, $svn_argnum);
if (PyErr_Occurred()) {
SWIG_fail;
}
}
%typemap(out) POINTER_TYPES
- "$result = svn_swig_NewPointerObj((void*)($1), $descriptor,
- _global_py_pool, args);";
+ "$result = svn_swig_py_new_pointer_obj((void*)($1), $descriptor,
+ _global_py_pool, args);";
%apply POINTER_TYPES { void *, SWIGTYPE *, SWIGTYPE [] };
@@ -635,8 +635,8 @@ svn_ ## TYPE ## _swig_rb_closed(VALUE se
*/
%typemap(argout) CALLABLE_CALLBACK * {
- %append_output(svn_swig_NewPointerObj($1, $descriptor,
- _global_py_pool, args));
+ %append_output(svn_swig_py_new_pointer_obj($1, $descriptor,
+ _global_py_pool, args));
}
/* Convert the pointer to a function pointer back into a regular
@@ -645,7 +645,7 @@ svn_ ## TYPE ## _swig_rb_closed(VALUE se
%typemap(in) CALLABLE_CALLBACK {
$<ype tmp =
- svn_swig_MustGetPtr($input, $&descriptor, $svn_argnum);
+ svn_swig_py_must_get_ptr($input, $&descriptor, $svn_argnum);
if (tmp == NULL || PyErr_Occurred()) {
SWIG_fail;
}
@@ -675,8 +675,8 @@ svn_ ## TYPE ## _swig_rb_closed(VALUE se
SWIG_fail;
}
*tmp = ($ltype) $1;
- $result = svn_swig_NewPointerObj(tmp, $&1_descriptor,
- py_pool, args);
+ $result = svn_swig_py_new_pointer_obj(tmp, $&1_descriptor,
+ py_pool, args);
}
}
@@ -694,7 +694,7 @@ svn_ ## TYPE ## _swig_rb_closed(VALUE se
*tmp = ($ltype) $value;
%set_constant("$symname",
- svn_swig_NewPointerObj(tmp, $&descriptor, NULL, NULL)
+ svn_swig_py_new_pointer_obj(tmp, $&descriptor, NULL, NULL)
);
}
@@ -997,8 +997,8 @@ svn_ ## TYPE ## _swig_rb_closed(VALUE se
/* We don't know the type of this reference, so we'll have to
* treat it as an opaque void pointer.
*/
- $result = svn_swig_NewPointerObj($1, $descriptor,
- _global_py_pool, args);
+ $result = svn_swig_py_new_pointer_obj($1, $descriptor,
+ _global_py_pool, args);
}
}
Modified: subversion/branches/fsfs-improvements/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c?rev=1506999&r1=1506998&r2=1506999&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c (original)
+++ subversion/branches/fsfs-improvements/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c Thu Jul 25 14:57:22 2013
@@ -54,7 +54,7 @@ static HV *type_cache = NULL;
#define _SWIG_TYPE(name) _swig_perl_type_query(name, 0)
#define POOLINFO _SWIG_TYPE("apr_pool_t *")
-static swig_type_info *_swig_perl_type_query(const char *typename, U32 klen)
+static swig_type_info *_swig_perl_type_query(const char *type_name, U32 klen)
{
SV **type_info;
swig_type_info *tinfo;
@@ -63,13 +63,13 @@ static swig_type_info *_swig_perl_type_q
type_cache = newHV();
if (klen == 0)
- klen = strlen(typename);
+ klen = strlen(type_name);
- if ((type_info = hv_fetch(type_cache, typename, klen, 0)))
+ if ((type_info = hv_fetch(type_cache, type_name, klen, 0)))
return (swig_type_info *) (SvIV(*type_info));
- tinfo = SWIG_TypeQuery(typename);
- hv_store(type_cache, typename, klen, newSViv((IV)tinfo), 0);
+ tinfo = SWIG_TypeQuery(type_name);
+ hv_store(type_cache, type_name, klen, newSViv((IV)tinfo), 0);
return tinfo;
}
@@ -178,16 +178,16 @@ static apr_hash_t *svn_swig_pl_to_hash(S
I32 cnt, retlen;
if (!(source && SvROK(source) && SvTYPE(SvRV(source)) == SVt_PVHV)) {
- return NULL;
+ return NULL;
}
hash = apr_hash_make(pool);
h = (HV *)SvRV(source);
cnt = hv_iterinit(h);
while (cnt--) {
- SV* item = hv_iternextsv(h, &key, &retlen);
- void *val = cv(item, ctx, pool);
- svn_hash_sets(hash, key, val);
+ SV* item = hv_iternextsv(h, &key, &retlen);
+ void *val = cv(item, ctx, pool);
+ svn_hash_sets(hash, key, val);
}
return hash;
@@ -269,8 +269,8 @@ apr_array_header_t *svn_swig_pl_strings_
}
apr_array_header_t *svn_swig_pl_objs_to_array(SV *source,
- swig_type_info *tinfo,
- apr_pool_t *pool)
+ swig_type_info *tinfo,
+ apr_pool_t *pool)
{
return svn_swig_pl_to_array(source,
(pl_element_converter_t)convert_pl_obj,
@@ -355,17 +355,17 @@ static SV *convert_hash(apr_hash_t *hash
hv = newHV();
for (hi = apr_hash_first(NULL, hash); hi; hi = apr_hash_next(hi)) {
- const char *key;
- void *val;
- int klen;
- SV *obj;
-
- apr_hash_this(hi, (void *)&key, NULL, &val);
- klen = strlen(key);
-
- obj = converter_func(val, ctx);
- hv_store(hv, (const char *)key, klen, obj, 0);
- SvREFCNT_inc(obj);
+ const char *key;
+ void *val;
+ int klen;
+ SV *obj;
+
+ apr_hash_this(hi, (void *)&key, NULL, &val);
+ klen = strlen(key);
+
+ obj = converter_func(val, ctx);
+ hv_store(hv, (const char *)key, klen, obj, 0);
+ SvREFCNT_inc(obj);
}
return sv_2mortal(newRV_noinc((SV*)hv));
@@ -385,16 +385,16 @@ SV *svn_swig_pl_convert_hash(apr_hash_t
/* c -> perl array convertors */
static SV *convert_array(const apr_array_header_t *array,
- element_converter_t converter_func, void *ctx)
+ element_converter_t converter_func, void *ctx)
{
AV *list = newAV();
int i;
for (i = 0; i < array->nelts; ++i) {
- void *element = APR_ARRAY_IDX(array, i, void *);
- SV *item = converter_func(element, ctx);
- av_push(list, item);
- SvREFCNT_inc(item);
+ void *element = APR_ARRAY_IDX(array, i, void *);
+ SV *item = converter_func(element, ctx);
+ av_push(list, item);
+ SvREFCNT_inc(item);
}
return sv_2mortal(newRV_noinc((SV*)list));
}
@@ -532,85 +532,85 @@ svn_error_t *svn_swig_pl_callback_thunk(
va_start(ap, fmt);
while (*fp) {
- char *c;
- void *o;
- SV *obj;
- swig_type_info *t;
- svn_string_t *str;
+ char *c;
+ void *o;
+ SV *obj;
+ swig_type_info *t;
+ svn_string_t *str;
- switch (*fp++) {
- case 'O':
+ switch (*fp++) {
+ case 'O':
XPUSHs(va_arg(ap, SV *));
- break;
- case 'S': /* swig object */
+ break;
+ case 'S': /* swig object */
o = va_arg(ap, void *);
t = va_arg(ap, swig_type_info *);
obj = sv_newmortal();
SWIG_MakePtr(obj, o, t, 0);
- XPUSHs(obj);
- break;
+ XPUSHs(obj);
+ break;
- case 's': /* string */
+ case 's': /* string */
c = va_arg(ap, char *);
- XPUSHs(c ? sv_2mortal(newSVpv(c, 0)) : &PL_sv_undef);
- break;
+ XPUSHs(c ? sv_2mortal(newSVpv(c, 0)) : &PL_sv_undef);
+ break;
- case 'i': /* apr_int32_t */
- XPUSHs(sv_2mortal(newSViv(va_arg(ap, apr_int32_t))));
- break;
+ case 'i': /* apr_int32_t */
+ XPUSHs(sv_2mortal(newSViv(va_arg(ap, apr_int32_t))));
+ break;
- case 'u': /* apr_uint32_t */
+ case 'u': /* apr_uint32_t */
XPUSHs(sv_2mortal(newSViv(va_arg(ap, apr_uint32_t))));
- break;
+ break;
- case 'r': /* svn_revnum_t */
- XPUSHs(sv_2mortal(newSViv(va_arg(ap, svn_revnum_t))));
- break;
-
- case 'b': /* svn_boolean_t */
- XPUSHs(sv_2mortal(newSViv(va_arg(ap, svn_boolean_t))));
- break;
-
- case 't': /* svn_string_t */
- str = va_arg(ap, svn_string_t *);
- XPUSHs(str ? sv_2mortal(newSVpv(str->data, str->len))
- : &PL_sv_undef);
- break;
-
- case 'L': /* apr_int64_t */
- /* Pass into perl as a string because some implementations may
- * not be able to handle a 64-bit int. If it's too long to
- * fit in Perl's interal IV size then perl will only make
- * it available as a string. If not then perl will convert
- * it to an IV for us. So this handles the problem gracefully */
- c = malloc(30);
- snprintf(c,30,"%" APR_INT64_T_FMT,va_arg(ap, apr_int64_t));
- XPUSHs(sv_2mortal(newSVpv(c, 0)));
- free(c);
- break;
-
- case 'U': /* apr_uint64_t */
- c = malloc(30);
- snprintf(c,30,"%" APR_UINT64_T_FMT,va_arg(ap, apr_uint64_t));
- XPUSHs(sv_2mortal(newSVpv(c, 0)));
- free(c);
- break;
-
- case 'z': /* apr_size_t */
- if (sizeof(apr_size_t) >= 8)
- {
- c = malloc(30);
- snprintf(c,30,"%" APR_SIZE_T_FMT,va_arg(ap, apr_size_t));
- XPUSHs(sv_2mortal(newSVpv(c, 0)));
- free(c);
- }
- else
- {
- XPUSHs(sv_2mortal(newSViv(va_arg(ap, apr_size_t))));
- }
- break;
- }
+ case 'r': /* svn_revnum_t */
+ XPUSHs(sv_2mortal(newSViv(va_arg(ap, svn_revnum_t))));
+ break;
+
+ case 'b': /* svn_boolean_t */
+ XPUSHs(sv_2mortal(newSViv(va_arg(ap, svn_boolean_t))));
+ break;
+
+ case 't': /* svn_string_t */
+ str = va_arg(ap, svn_string_t *);
+ XPUSHs(str ? sv_2mortal(newSVpv(str->data, str->len))
+ : &PL_sv_undef);
+ break;
+
+ case 'L': /* apr_int64_t */
+ /* Pass into perl as a string because some implementations may
+ * not be able to handle a 64-bit int. If it's too long to
+ * fit in Perl's interal IV size then perl will only make
+ * it available as a string. If not then perl will convert
+ * it to an IV for us. So this handles the problem gracefully */
+ c = malloc(30);
+ snprintf(c,30,"%" APR_INT64_T_FMT,va_arg(ap, apr_int64_t));
+ XPUSHs(sv_2mortal(newSVpv(c, 0)));
+ free(c);
+ break;
+
+ case 'U': /* apr_uint64_t */
+ c = malloc(30);
+ snprintf(c,30,"%" APR_UINT64_T_FMT,va_arg(ap, apr_uint64_t));
+ XPUSHs(sv_2mortal(newSVpv(c, 0)));
+ free(c);
+ break;
+
+ case 'z': /* apr_size_t */
+ if (sizeof(apr_size_t) >= 8)
+ {
+ c = malloc(30);
+ snprintf(c,30,"%" APR_SIZE_T_FMT,va_arg(ap, apr_size_t));
+ XPUSHs(sv_2mortal(newSVpv(c, 0)));
+ free(c);
+ }
+ else
+ {
+ XPUSHs(sv_2mortal(newSViv(va_arg(ap, apr_size_t))));
+ }
+ break;
+ }
}
va_end(ap);
@@ -619,23 +619,23 @@ svn_error_t *svn_swig_pl_callback_thunk(
switch (caller_func) {
case CALL_SV:
count = call_sv(func, call_flags );
- break;
+ break;
case CALL_METHOD:
count = call_method(func, call_flags );
- break;
+ break;
default:
croak("unkonwn calling type");
- break;
+ break;
}
SPAGAIN ;
if (((call_flags & G_SCALAR) && count != 1) ||
- ((call_flags & G_VOID) && count != 0))
+ ((call_flags & G_VOID) && count != 0))
croak("Wrong number of returns");
if (result) {
- *result = POPs;
- SvREFCNT_inc(*result);
+ *result = POPs;
+ SvREFCNT_inc(*result);
}
PUTBACK;
@@ -788,8 +788,8 @@ static svn_error_t * thunk_close_directo
}
static svn_error_t * thunk_absent_directory(const char *path,
- void *parent_baton,
- apr_pool_t *pool)
+ void *parent_baton,
+ apr_pool_t *pool)
{
item_baton *ib = parent_baton;
@@ -851,8 +851,8 @@ static svn_error_t * thunk_window_handle
SvREFCNT_dec(handler);
}
else {
- swig_type_info *tinfo = _SWIG_TYPE("svn_txdelta_window_t *");
- SVN_ERR(svn_swig_pl_callback_thunk(CALL_SV, handler,
+ swig_type_info *tinfo = _SWIG_TYPE("svn_txdelta_window_t *");
+ SVN_ERR(svn_swig_pl_callback_thunk(CALL_SV, handler,
NULL, "S", window, tinfo));
}
@@ -874,30 +874,30 @@ thunk_apply_textdelta(void *file_baton,
"OOsS", ib->editor, ib->baton,
base_checksum, pool, POOLINFO));
if (SvOK(result)) {
- if (SvROK(result) && SvTYPE(SvRV(result)) == SVt_PVAV) {
- swig_type_info *handler_info =
+ if (SvROK(result) && SvTYPE(SvRV(result)) == SVt_PVAV) {
+ swig_type_info *handler_info =
_SWIG_TYPE("svn_txdelta_window_handler_t");
swig_type_info *void_info = _SWIG_TYPE("void *");
- AV *array = (AV *)SvRV(result);
+ AV *array = (AV *)SvRV(result);
- if (SWIG_ConvertPtr(*av_fetch(array, 0, 0),
- (void **)handler, handler_info,0) < 0) {
- croak("Unable to convert from SWIG Type");
- }
- if (SWIG_ConvertPtr(*av_fetch(array, 1, 0),
- h_baton, void_info,0) < 0) {
- croak("Unable to convert from SWIG Type ");
- }
+ if (SWIG_ConvertPtr(*av_fetch(array, 0, 0),
+ (void **)handler, handler_info,0) < 0) {
+ croak("Unable to convert from SWIG Type");
+ }
+ if (SWIG_ConvertPtr(*av_fetch(array, 1, 0),
+ h_baton, void_info,0) < 0) {
+ croak("Unable to convert from SWIG Type ");
+ }
SvREFCNT_dec(result);
- }
- else {
- *handler = thunk_window_handler;
- *h_baton = result;
- }
+ }
+ else {
+ *handler = thunk_window_handler;
+ *h_baton = result;
+ }
}
else {
- *handler = svn_delta_noop_window_handler;
- *h_baton = NULL;
+ *handler = svn_delta_noop_window_handler;
+ *h_baton = NULL;
}
return SVN_NO_ERROR;
@@ -935,8 +935,8 @@ static svn_error_t * thunk_close_file(vo
}
static svn_error_t * thunk_absent_file(const char *path,
- void *parent_baton,
- apr_pool_t *pool)
+ void *parent_baton,
+ apr_pool_t *pool)
{
item_baton *ib = parent_baton;
@@ -962,10 +962,10 @@ static svn_error_t * thunk_abort_edit(vo
void
-svn_delta_wrap_window_handler(svn_txdelta_window_handler_t *handler,
- void **h_baton,
- SV *callback,
- apr_pool_t *pool)
+svn_swig_pl_wrap_window_handler(svn_txdelta_window_handler_t *handler,
+ void **h_baton,
+ SV *callback,
+ apr_pool_t *pool)
{
*handler = thunk_window_handler;
*h_baton = callback;
@@ -973,10 +973,10 @@ svn_delta_wrap_window_handler(svn_txdelt
svn_swig_pl_hold_ref_in_pool(pool, callback);
}
-void svn_delta_make_editor(svn_delta_editor_t **editor,
- void **edit_baton,
- SV *perl_editor,
- apr_pool_t *pool)
+void svn_swig_pl_make_editor(svn_delta_editor_t **editor,
+ void **edit_baton,
+ SV *perl_editor,
+ apr_pool_t *pool)
{
svn_delta_editor_t *thunk_editor = svn_delta_default_editor(pool);
@@ -1003,18 +1003,18 @@ void svn_delta_make_editor(svn_delta_edi
}
svn_error_t *svn_swig_pl_thunk_log_receiver(void *baton,
- apr_hash_t *changed_paths,
- svn_revnum_t rev,
- const char *author,
- const char *date,
- const char *msg,
- apr_pool_t *pool)
+ apr_hash_t *changed_paths,
+ svn_revnum_t rev,
+ const char *author,
+ const char *date,
+ const char *msg,
+ apr_pool_t *pool)
{
SV *receiver = baton;
swig_type_info *tinfo = _SWIG_TYPE("svn_log_changed_path_t *");
if (!SvOK(receiver))
- return SVN_NO_ERROR;
+ return SVN_NO_ERROR;
svn_swig_pl_callback_thunk(CALL_SV,
receiver, NULL,
@@ -1033,7 +1033,7 @@ svn_error_t *svn_swig_pl_thunk_log_entry
SV *receiver = baton;
if (!SvOK(receiver))
- return SVN_NO_ERROR;
+ return SVN_NO_ERROR;
svn_swig_pl_callback_thunk(CALL_SV,
receiver, NULL,
@@ -1071,7 +1071,7 @@ svn_error_t *svn_swig_pl_thunk_history_f
SV *func = baton;
if (!SvOK(func))
- return SVN_NO_ERROR;
+ return SVN_NO_ERROR;
svn_swig_pl_callback_thunk(CALL_SV,
func, NULL,
@@ -1089,7 +1089,7 @@ svn_error_t *svn_swig_pl_thunk_authz_fun
SV *func = baton, *result;
if (!SvOK(func))
- return SVN_NO_ERROR;
+ return SVN_NO_ERROR;
svn_swig_pl_callback_thunk(CALL_SV,
func, &result,
@@ -1103,12 +1103,12 @@ svn_error_t *svn_swig_pl_thunk_authz_fun
}
svn_error_t *svn_swig_pl_thunk_commit_callback(svn_revnum_t new_revision,
- const char *date,
- const char *author,
- void *baton)
+ const char *date,
+ const char *author,
+ void *baton)
{
if (!SvOK((SV *)baton))
- return SVN_NO_ERROR;
+ return SVN_NO_ERROR;
svn_swig_pl_callback_thunk(CALL_SV, baton, NULL,
"rss", new_revision, date, author);
@@ -1135,8 +1135,8 @@ svn_error_t *svn_swig_pl_thunk_commit_ca
/* Wrap RA */
static svn_error_t * thunk_open_tmp_file(apr_file_t **fp,
- void *callback_baton,
- apr_pool_t *pool)
+ void *callback_baton,
+ apr_pool_t *pool)
{
SV *result;
swig_type_info *tinfo = _SWIG_TYPE("apr_file_t *");
@@ -1145,7 +1145,7 @@ static svn_error_t * thunk_open_tmp_file
&result, "OS", callback_baton, pool, POOLINFO);
if (SWIG_ConvertPtr(result, (void *)fp, tinfo,0) < 0) {
- croak("Unable to convert from SWIG Type");
+ croak("Unable to convert from SWIG Type");
}
SvREFCNT_dec(result);
@@ -1168,15 +1168,15 @@ svn_error_t *thunk_get_wc_prop(void *bat
/* this is svn_string_t * typemap in */
if (!SvOK(result) || result == &PL_sv_undef) {
- *value = NULL;
+ *value = NULL;
}
else if (SvPOK(result)) {
data = SvPV(result, len);
*value = svn_string_ncreate(data, len, pool);
}
else {
- SvREFCNT_dec(result);
- croak("not a string");
+ SvREFCNT_dec(result);
+ croak("not a string");
}
SvREFCNT_dec(result);
@@ -1184,10 +1184,10 @@ svn_error_t *thunk_get_wc_prop(void *bat
}
-svn_error_t *svn_ra_make_callbacks(svn_ra_callbacks_t **cb,
- void **c_baton,
- SV *perl_callbacks,
- apr_pool_t *pool)
+svn_error_t *svn_swig_pl_make_callbacks(svn_ra_callbacks_t **cb,
+ void **c_baton,
+ SV *perl_callbacks,
+ apr_pool_t *pool)
{
SV *auth_baton;
@@ -1202,7 +1202,7 @@ svn_error_t *svn_ra_make_callbacks(svn_r
if (SWIG_ConvertPtr(auth_baton,
(void **)&(*cb)->auth_baton, _SWIG_TYPE("svn_auth_baton_t *"),0) < 0) {
- croak("Unable to convert from SWIG Type");
+ croak("Unable to convert from SWIG Type");
}
*c_baton = perl_callbacks;
svn_swig_pl_hold_ref_in_pool(pool, perl_callbacks);
@@ -1356,13 +1356,13 @@ svn_error_t *svn_swig_pl_thunk_ssl_clien
/* Thunked version of svn_wc_notify_func_t callback type */
void svn_swig_pl_notify_func(void * baton,
- const char *path,
- svn_wc_notify_action_t action,
- svn_node_kind_t kind,
- const char *mime_type,
- svn_wc_notify_state_t content_state,
- svn_wc_notify_state_t prop_state,
- svn_revnum_t revision)
+ const char *path,
+ svn_wc_notify_action_t action,
+ svn_node_kind_t kind,
+ const char *mime_type,
+ svn_wc_notify_state_t content_state,
+ svn_wc_notify_state_t prop_state,
+ svn_revnum_t revision)
{
if (!SvOK((SV *)baton)) {
return;
@@ -1391,7 +1391,7 @@ svn_error_t *svn_swig_pl_get_commit_log_
if (!SvOK((SV *)baton)) {
*log_msg = apr_pstrdup(pool, "");
- *tmp_file = NULL;
+ *tmp_file = NULL;
return SVN_NO_ERROR;
}
@@ -1409,17 +1409,17 @@ svn_error_t *svn_swig_pl_get_commit_log_
/* client returned undef to us */
*log_msg = NULL;
} else if (SvPOK(SvRV(log_msg_sv))) {
- /* client returned string so get the string and then duplicate
- * it using pool memory */
+ /* client returned string so get the string and then duplicate
+ * it using pool memory */
*log_msg = apr_pstrdup(pool, SvPV_nolen(SvRV(log_msg_sv)));
} else {
croak("Invalid value in log_msg reference, must be undef or a string");
}
if (!SvOK(SvRV(tmp_file_sv))) {
- *tmp_file = NULL;
+ *tmp_file = NULL;
} else if (SvPOK(SvRV(tmp_file_sv))) {
- *tmp_file = apr_pstrdup(pool, SvPV_nolen(SvRV(tmp_file_sv)));
+ *tmp_file = apr_pstrdup(pool, SvPV_nolen(SvRV(tmp_file_sv)));
} else {
croak("Invalid value in tmp_file reference, "
"must be undef or a string");
@@ -1427,9 +1427,9 @@ svn_error_t *svn_swig_pl_get_commit_log_
if (sv_derived_from(result, "_p_svn_error_t")) {
swig_type_info *errorinfo = _SWIG_TYPE("svn_error_t *");
- if (SWIG_ConvertPtr(result, (void *)&ret_val, errorinfo, 0) < 0) {
+ if (SWIG_ConvertPtr(result, (void *)&ret_val, errorinfo, 0) < 0) {
SvREFCNT_dec(result);
- croak("Unable to convert from SWIG Type");
+ croak("Unable to convert from SWIG Type");
}
}
@@ -1480,10 +1480,10 @@ svn_error_t *svn_swig_pl_cancel_func(voi
if (sv_derived_from(result,"_p_svn_error_t")) {
swig_type_info *errorinfo = _SWIG_TYPE("svn_error_t *");
- if (SWIG_ConvertPtr(result, (void *)&ret_val, errorinfo, 0) < 0) {
- SvREFCNT_dec(result);
- croak("Unable to convert from SWIG Type");
- }
+ if (SWIG_ConvertPtr(result, (void *)&ret_val, errorinfo, 0) < 0) {
+ SvREFCNT_dec(result);
+ croak("Unable to convert from SWIG Type");
+ }
} else if (SvIOK(result) && SvIV(result)) {
ret_val = svn_error_create(SVN_ERR_CANCELLED, NULL,
"By cancel callback");
@@ -1579,9 +1579,9 @@ svn_error_t *svn_swig_pl_blame_func(void
if (sv_derived_from(result, "_p_svn_error_t")) {
swig_type_info *errorinfo = _SWIG_TYPE("svn_error_t *");
- if (SWIG_ConvertPtr(result, (void *)&ret_val, errorinfo, 0) < 0) {
+ if (SWIG_ConvertPtr(result, (void *)&ret_val, errorinfo, 0) < 0) {
SvREFCNT_dec(result);
- croak("Unable to convert from SWIG Type");
+ croak("Unable to convert from SWIG Type");
}
}
@@ -1594,7 +1594,7 @@ svn_boolean_t svn_swig_pl_thunk_config_e
{
SV *result;
if (!SvOK((SV *)baton))
- return 0;
+ return 0;
svn_swig_pl_callback_thunk(CALL_SV, baton, &result,
"ss", name, value);
@@ -1605,21 +1605,33 @@ svn_boolean_t svn_swig_pl_thunk_config_e
/* default pool support */
-#if defined(SVN_AVOID_CIRCULAR_LINKAGE_AT_ALL_COSTS_HACK)
-static svn_swig_pl_get_current_pool_t svn_swig_pl_get_current_pool = NULL;
-static svn_swig_pl_set_current_pool_t svn_swig_pl_set_current_pool = NULL;
+static svn_swig_pl_get_current_pool_func_t get_current_pool_cb = NULL;
+static svn_swig_pl_set_current_pool_func_t set_current_pool_cb = NULL;
-void svn_swig_pl_bind_current_pool_fns(svn_swig_pl_get_current_pool_t get,
- svn_swig_pl_set_current_pool_t set)
+void
+svn_swig_pl__bind_current_pool_fns(svn_swig_pl_get_current_pool_func_t get,
+ svn_swig_pl_set_current_pool_func_t set)
{
- svn_swig_pl_get_current_pool = get;
- svn_swig_pl_set_current_pool = set;
+ /* This function should only be called ONCE, otherwise there are two
+ global variables CURRENT_POOL */
+ SVN_ERR_ASSERT_NO_RETURN(get_current_pool_cb == NULL
+ && set_current_pool_cb == NULL);
+
+ get_current_pool_cb = get;
+ set_current_pool_cb = set;
}
-#else
-apr_pool_t *svn_swig_pl_get_current_pool(void);
-void svn_swig_pl_set_current_pool(apr_pool_t *pool);
-#endif
+apr_pool_t * svn_swig_pl_get_current_pool()
+{
+ SVN_ERR_ASSERT_NO_RETURN(get_current_pool_cb != NULL);
+ return get_current_pool_cb();
+}
+
+void svn_swig_pl_set_current_pool(apr_pool_t *pool)
+{
+ SVN_ERR_ASSERT_NO_RETURN(set_current_pool_cb != NULL);
+ set_current_pool_cb(pool);
+}
apr_pool_t *svn_swig_pl_make_pool(SV *obj)
{
@@ -1627,12 +1639,12 @@ apr_pool_t *svn_swig_pl_make_pool(SV *ob
if (obj && sv_isobject(obj)) {
if (sv_derived_from(obj, "SVN::Pool")) {
- obj = SvRV(obj);
- }
- if (sv_derived_from(obj, "_p_apr_pool_t")) {
- SWIG_ConvertPtr(obj, (void **)&pool, POOLINFO, 0);
- return pool;
- }
+ obj = SvRV(obj);
+ }
+ if (sv_derived_from(obj, "_p_apr_pool_t")) {
+ SWIG_ConvertPtr(obj, (void **)&pool, POOLINFO, 0);
+ return pool;
+ }
}
if (!svn_swig_pl_get_current_pool())
@@ -1657,15 +1669,15 @@ static svn_error_t *io_handle_read(void
MAGIC *mg;
if ((mg = SvTIED_mg((SV*)io->io, PERL_MAGIC_tiedscalar))) {
- SV *ret;
- SV *buf = sv_newmortal();
+ SV *ret;
+ SV *buf = sv_newmortal();
- svn_swig_pl_callback_thunk(CALL_METHOD, (void *)"READ", &ret, "OOz",
+ svn_swig_pl_callback_thunk(CALL_METHOD, (void *)"READ", &ret, "OOz",
SvTIED_obj((SV*)io->io, mg),
buf, *len);
- *len = SvIV(ret);
- SvREFCNT_dec(ret);
- memmove(buffer, SvPV_nolen(buf), *len);
+ *len = SvIV(ret);
+ SvREFCNT_dec(ret);
+ memmove(buffer, SvPV_nolen(buf), *len);
}
else
*len = PerlIO_read(IoIFP(io->io), buffer, *len);
@@ -1680,12 +1692,12 @@ static svn_error_t *io_handle_write(void
MAGIC *mg;
if ((mg = SvTIED_mg((SV*)io->io, PERL_MAGIC_tiedscalar))) {
- SV *ret, *pv;
+ SV *ret, *pv;
pv = sv_2mortal(newSVpvn(data, *len));
- svn_swig_pl_callback_thunk(CALL_METHOD, (void *)"WRITE", &ret, "OOz",
+ svn_swig_pl_callback_thunk(CALL_METHOD, (void *)"WRITE", &ret, "OOz",
SvTIED_obj((SV*)io->io, mg), pv, *len);
- *len = SvIV(ret);
- SvREFCNT_dec(ret);
+ *len = SvIV(ret);
+ SvREFCNT_dec(ret);
}
else
*len = PerlIO_write(IoIFP(io->io), data, *len);
@@ -1729,7 +1741,7 @@ svn_error_t *svn_swig_pl_make_stream(svn
if (sv_derived_from(obj, "SVN::Stream"))
svn_swig_pl_callback_thunk(CALL_METHOD, (void *)"svn_stream",
&obj, "O", obj);
- else if (!sv_derived_from(obj, "_p_svn_stream_t"))
+ else if (!sv_derived_from(obj, "_p_svn_stream_t"))
simple_type = 0;
if (simple_type) {
@@ -1739,17 +1751,17 @@ svn_error_t *svn_swig_pl_make_stream(svn
}
if (obj && SvROK(obj) && SvTYPE(SvRV(obj)) == SVt_PVGV &&
- (io = GvIO(SvRV(obj)))) {
- apr_pool_t *pool = svn_swig_pl_get_current_pool();
- io_baton_t *iob = apr_palloc(pool, sizeof(io_baton_t));
- SvREFCNT_inc(obj);
- iob->obj = obj;
- iob->io = io;
- *stream = svn_stream_create(iob, pool);
- svn_stream_set_read(*stream, io_handle_read);
- svn_stream_set_write(*stream, io_handle_write);
- svn_stream_set_close(*stream, io_handle_close);
- apr_pool_cleanup_register(pool, iob, io_handle_cleanup,
+ (io = GvIO(SvRV(obj)))) {
+ apr_pool_t *pool = svn_swig_pl_get_current_pool();
+ io_baton_t *iob = apr_palloc(pool, sizeof(io_baton_t));
+ SvREFCNT_inc(obj);
+ iob->obj = obj;
+ iob->io = io;
+ *stream = svn_stream_create(iob, pool);
+ svn_stream_set_read(*stream, io_handle_read);
+ svn_stream_set_write(*stream, io_handle_write);
+ svn_stream_set_close(*stream, io_handle_close);
+ apr_pool_cleanup_register(pool, iob, io_handle_cleanup,
io_handle_cleanup);
}
@@ -1793,7 +1805,7 @@ apr_file_t *svn_swig_pl_make_file(SV *fi
apr_file_t *apr_file = NULL;
if (!SvOK(file) || file == &PL_sv_undef)
- return NULL;
+ return NULL;
if (SvPOKp(file)) {
apr_file_open(&apr_file, SvPV_nolen(file),
Modified: subversion/branches/fsfs-improvements/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h?rev=1506999&r1=1506998&r2=1506999&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h (original)
+++ subversion/branches/fsfs-improvements/subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.h Thu Jul 25 14:57:22 2013
@@ -59,14 +59,14 @@ extern "C" {
#endif
+typedef apr_pool_t *(*svn_swig_pl_get_current_pool_func_t)(void);
+typedef void (*svn_swig_pl_set_current_pool_func_t)(apr_pool_t *pool);
-#if defined(SVN_AVOID_CIRCULAR_LINKAGE_AT_ALL_COSTS_HACK)
-typedef apr_pool_t *(*svn_swig_pl_get_current_pool_t)(void);
-typedef void (*svn_swig_pl_set_current_pool_t)(apr_pool_t *pool);
+void svn_swig_pl__bind_current_pool_fns(svn_swig_pl_get_current_pool_func_t get,
+ svn_swig_pl_set_current_pool_func_t set);
-void svn_swig_pl_bind_current_pool_fns(svn_swig_pl_get_current_pool_t get,
- svn_swig_pl_set_current_pool_t set);
-#endif
+apr_pool_t * svn_swig_pl_get_current_pool();
+void svn_swig_pl_set_current_pool(apr_pool_t *pool);
apr_pool_t *svn_swig_pl_make_pool(SV *obj);
@@ -83,8 +83,6 @@ svn_error_t *svn_swig_pl_callback_thunk(
SV *svn_swig_pl_prophash_to_hash(apr_hash_t *hash);
SV *svn_swig_pl_convert_hash(apr_hash_t *hash, swig_type_info *tinfo);
-SV *svn_swig_pl_convert_hash_of_revnum_t(apr_hash_t *hash);
-
apr_array_header_t *svn_swig_pl_strings_to_array(SV *source,
apr_pool_t *pool);
@@ -105,9 +103,6 @@ apr_array_header_t *svn_swig_pl_array_to
SV *source, apr_pool_t *pool);
SV *svn_swig_pl_array_to_list(const apr_array_header_t *array);
-/* Formerly used by pre-1.0 APIs. Now unused
-SV *svn_swig_pl_ints_to_list(const apr_array_header_t *array);
-*/
SV *svn_swig_pl_convert_array(const apr_array_header_t *array,
swig_type_info *tinfo);
@@ -162,10 +157,10 @@ svn_error_t *svn_swig_pl_thunk_authz_fun
apr_pool_t *pool);
/* ra callbacks. */
-svn_error_t *svn_ra_make_callbacks(svn_ra_callbacks_t **cb,
- void **c_baton,
- SV *perl_callbacks,
- apr_pool_t *pool);
+svn_error_t *svn_swig_pl_make_callbacks(svn_ra_callbacks_t **cb,
+ void **c_baton,
+ SV *perl_callbacks,
+ apr_pool_t *pool);
/* thunked gnome_keyring_unlock_prompt callback function */
svn_error_t *svn_swig_pl_thunk_gnome_keyring_unlock_prompt(char **keyring_password,
@@ -277,15 +272,15 @@ svn_error_t *svn_swig_pl_blame_func(void
svn_boolean_t svn_swig_pl_thunk_config_enumerator(const char *name, const char *value, void *baton);
/* helper for making the editor */
-void svn_delta_make_editor(svn_delta_editor_t **editor,
- void **edit_baton,
- SV *perl_editor,
- apr_pool_t *pool);
-
-void svn_delta_wrap_window_handler(svn_txdelta_window_handler_t *handler,
- void **h_baton,
- SV *callback,
- apr_pool_t *pool);
+void svn_swig_pl_make_editor(svn_delta_editor_t **editor,
+ void **edit_baton,
+ SV *perl_editor,
+ apr_pool_t *pool);
+
+void svn_swig_pl_wrap_window_handler(svn_txdelta_window_handler_t *handler,
+ void **h_baton,
+ SV *callback,
+ apr_pool_t *pool);
/* svn_stream_t helpers */
svn_error_t *svn_swig_pl_make_stream(svn_stream_t **stream, SV *obj);
Modified: subversion/branches/fsfs-improvements/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c?rev=1506999&r1=1506998&r2=1506999&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c (original)
+++ subversion/branches/fsfs-improvements/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c Thu Jul 25 14:57:22 2013
@@ -152,7 +152,7 @@ int svn_swig_py_get_pool_arg(PyObject *a
PyObject *input = PyTuple_GET_ITEM(args, argnum);
if (input != Py_None && PyObject_HasAttrString(input, markValid))
{
- *pool = svn_swig_MustGetPtr(input, type, argnum+1);
+ *pool = svn_swig_py_must_get_ptr(input, type, argnum+1);
if (*pool == NULL)
return 1;
*py_pool = input;
@@ -163,7 +163,7 @@ int svn_swig_py_get_pool_arg(PyObject *a
/* We couldn't find a pool argument, so we'll create a subpool */
*pool = svn_pool_create(application_pool);
- *py_pool = svn_swig_NewPointerObj(*pool, type, application_py_pool,
+ *py_pool = svn_swig_py_new_pointer_obj(*pool, type, application_py_pool,
NULL);
if (*py_pool == NULL)
return 1;
@@ -190,7 +190,7 @@ int svn_swig_py_get_parent_pool(PyObject
Py_DECREF(*py_pool);
- *pool = svn_swig_MustGetPtr(*py_pool, type, 1);
+ *pool = svn_swig_py_must_get_ptr(*py_pool, type, 1);
if (*pool == NULL)
return 1;
@@ -245,8 +245,8 @@ static int proxy_set_pool(PyObject **pro
#define svn_swig_TypeQuery(x) SWIG_TypeQuery(x)
/** Wrapper for SWIG_NewPointerObj */
-PyObject *svn_swig_NewPointerObj(void *obj, swig_type_info *type,
- PyObject *pool, PyObject *args)
+PyObject *svn_swig_py_new_pointer_obj(void *obj, swig_type_info *type,
+ PyObject *pool, PyObject *args)
{
PyObject *proxy = SWIG_NewPointerObj(obj, type, 0);
@@ -270,7 +270,7 @@ PyObject *svn_swig_NewPointerObj(void *o
return proxy;
}
-/** svn_swig_NewPointerObj, except a string is used to describe the type */
+/** svn_swig_py_new_pointer_obj, except a string is used to describe the type */
static PyObject *svn_swig_NewPointerObjString(void *ptr, const char *type,
PyObject *py_pool)
{
@@ -282,11 +282,11 @@ static PyObject *svn_swig_NewPointerObjS
}
/* ### cache the swig_type_info at some point? */
- return svn_swig_NewPointerObj(ptr, typeinfo, py_pool, NULL);
+ return svn_swig_py_new_pointer_obj(ptr, typeinfo, py_pool, NULL);
}
/** Wrapper for SWIG_ConvertPtr */
-int svn_swig_ConvertPtr(PyObject *input, void **obj, swig_type_info *type)
+int svn_swig_py_convert_ptr(PyObject *input, void **obj, swig_type_info *type)
{
if (PyObject_HasAttrString(input, assertValid))
{
@@ -310,11 +310,11 @@ int svn_swig_ConvertPtr(PyObject *input,
static int svn_swig_ConvertPtrString(PyObject *input,
void **obj, const char *type)
{
- return svn_swig_ConvertPtr(input, obj, svn_swig_TypeQuery(type));
+ return svn_swig_py_convert_ptr(input, obj, svn_swig_TypeQuery(type));
}
/** Wrapper for SWIG_MustGetPtr */
-void *svn_swig_MustGetPtr(void *input, swig_type_info *type, int argnum)
+void *svn_swig_py_must_get_ptr(void *input, swig_type_info *type, int argnum)
{
if (PyObject_HasAttrString(input, assertValid))
{
@@ -443,7 +443,7 @@ static PyObject *make_ob_pool(void *pool
* normally used for anything. It's just here for compatibility
* with Subversion 1.2. */
apr_pool_t *new_pool = svn_pool_create(application_pool);
- PyObject *new_py_pool = svn_swig_NewPointerObj(new_pool,
+ PyObject *new_py_pool = svn_swig_py_new_pointer_obj(new_pool,
svn_swig_TypeQuery("apr_pool_t *"), application_py_pool, NULL);
(void) pool; /* Silence compiler warnings about unused parameter. */
return new_py_pool;
@@ -534,7 +534,7 @@ static PyObject *convert_hash(apr_hash_t
static PyObject *convert_to_swigtype(void *value, void *ctx, PyObject *py_pool)
{
/* ctx is a 'swig_type_info *' */
- return svn_swig_NewPointerObj(value, ctx, py_pool, NULL);
+ return svn_swig_py_new_pointer_obj(value, ctx, py_pool, NULL);
}
static PyObject *convert_svn_string_t(void *value, void *ctx,
@@ -853,7 +853,7 @@ PyObject *svn_swig_py_convert_hash(apr_h
static PyObject *make_ob_##type(void *value) \
{ \
apr_pool_t *new_pool = svn_pool_create(application_pool); \
- PyObject *new_py_pool = svn_swig_NewPointerObj(new_pool, \
+ PyObject *new_py_pool = svn_swig_py_new_pointer_obj(new_pool, \
svn_swig_TypeQuery("apr_pool_t *"), application_py_pool, NULL); \
svn_##type##_t *new_value = dup(value, new_pool); \
PyObject *obj = svn_swig_NewPointerObjString(new_value, "svn_" #type "_t *", \
@@ -1224,7 +1224,7 @@ apr_hash_t *svn_swig_py_struct_ptr_hash_
Py_DECREF(keys);
return NULL;
}
- status = svn_swig_ConvertPtr(value, &struct_ptr, type);
+ status = svn_swig_py_convert_ptr(value, &struct_ptr, type);
if (status != 0)
{
PyErr_SetString(PyExc_TypeError,
@@ -1284,7 +1284,7 @@ svn_swig_py_unwrap_struct_ptr(PyObject *
void **ptr_dest = destination;
swig_type_info *type_descriptor = baton;
- int status = svn_swig_ConvertPtr(source, ptr_dest, type_descriptor);
+ int status = svn_swig_py_convert_ptr(source, ptr_dest, type_descriptor);
if (status != 0)
{
@@ -2223,7 +2223,7 @@ svn_swig_py_convert_txdelta_op_c_array(i
for (i = 0; i < num_ops; ++i)
PyList_SET_ITEM(result, i,
- svn_swig_NewPointerObj(ops + i, op_type_info,
+ svn_swig_py_new_pointer_obj(ops + i, op_type_info,
parent_pool, NULL));
return result;
@@ -4068,7 +4068,7 @@ static svn_error_t *reporter_abort_repor
return err;
}
-const svn_ra_reporter2_t swig_py_ra_reporter2 = {
+static const svn_ra_reporter2_t swig_py_ra_reporter2 = {
reporter_set_path,
reporter_delete_path,
reporter_link_path,
@@ -4076,6 +4076,11 @@ const svn_ra_reporter2_t swig_py_ra_repo
reporter_abort_report
};
+const svn_ra_reporter2_t *svn_swig_py_get_ra_reporter2()
+{
+ return &swig_py_ra_reporter2;
+}
+
/* svn_wc_diff_callbacks2_t */
static svn_error_t *
wc_diff_callbacks2_file_changed_or_added(const char *callback,
Modified: subversion/branches/fsfs-improvements/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h?rev=1506999&r1=1506998&r2=1506999&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h (original)
+++ subversion/branches/fsfs-improvements/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h Thu Jul 25 14:57:22 2013
@@ -40,16 +40,6 @@
#include "svn_repos.h"
/* Define DLL export magic on Windows. */
-#ifdef WIN32
-# ifdef SVN_SWIG_SWIGUTIL_PY_C
-# define SVN_SWIG_SWIGUTIL_EXPORT __declspec(dllexport)
-# else
-# define SVN_SWIG_SWIGUTIL_EXPORT __declspec(dllimport)
-# endif
-#else
-# define SVN_SWIG_SWIGUTIL_EXPORT
-#endif
-
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
@@ -57,27 +47,22 @@ extern "C" {
/* Initialize the libsvn_swig_py library. */
-SVN_SWIG_SWIGUTIL_EXPORT
apr_status_t svn_swig_py_initialize(void);
/* Functions to manage python's global interpreter lock */
-SVN_SWIG_SWIGUTIL_EXPORT
void svn_swig_py_release_py_lock(void);
-SVN_SWIG_SWIGUTIL_EXPORT
void svn_swig_py_acquire_py_lock(void);
/*** Automatic Pool Management Functions ***/
/* Set the application pool */
-SVN_SWIG_SWIGUTIL_EXPORT
void svn_swig_py_set_application_pool(PyObject *py_pool, apr_pool_t *pool);
/* Clear the application pool */
-SVN_SWIG_SWIGUTIL_EXPORT
void svn_swig_py_clear_application_pool(void);
/* Get the pool argument from the last element of tuple args.
@@ -85,7 +70,6 @@ void svn_swig_py_clear_application_pool(
* subpool. Return 0 if successful. Return 1 if an error
* occurs.
*/
-SVN_SWIG_SWIGUTIL_EXPORT
int svn_swig_py_get_pool_arg(PyObject *args, swig_type_info *type,
PyObject **py_pool, apr_pool_t **pool);
@@ -93,7 +77,6 @@ int svn_swig_py_get_pool_arg(PyObject *a
* argument list. Return 0 if successful. Return 1 if an error
* occurs.
*/
-SVN_SWIG_SWIGUTIL_EXPORT
int svn_swig_py_get_parent_pool(PyObject *args, swig_type_info *type,
PyObject **py_pool, apr_pool_t **pool);
@@ -101,54 +84,45 @@ int svn_swig_py_get_parent_pool(PyObject
/*** SWIG Wrappers ***/
/* Wrapper for SWIG_NewPointerObj */
-SVN_SWIG_SWIGUTIL_EXPORT
-PyObject *svn_swig_NewPointerObj(void *obj, swig_type_info *type,
+PyObject *svn_swig_py_new_pointer_obj(void *obj, swig_type_info *type,
PyObject *pool, PyObject *args);
/* Wrapper for SWIG_ConvertPtr */
-SVN_SWIG_SWIGUTIL_EXPORT
-int svn_swig_ConvertPtr(PyObject *input, void **obj, swig_type_info *type);
+int svn_swig_py_convert_ptr(PyObject *input, void **obj, swig_type_info *type);
/* Wrapper for SWIG_MustGetPtr */
-SVN_SWIG_SWIGUTIL_EXPORT
-void *svn_swig_MustGetPtr(void *input, swig_type_info *type, int argnum);
+void *svn_swig_py_must_get_ptr(void *input, swig_type_info *type, int argnum);
/*** Functions to expose a custom SubversionException ***/
/* raise a subversion exception, created from a normal subversion
error. consume the error. */
-SVN_SWIG_SWIGUTIL_EXPORT
void svn_swig_py_svn_exception(svn_error_t *err);
/* helper function to convert an apr_hash_t* (char* -> svnstring_t*) to
a Python dict */
-SVN_SWIG_SWIGUTIL_EXPORT
PyObject *svn_swig_py_prophash_to_dict(apr_hash_t *hash);
/* helper function to convert an apr_hash_t* (svn_revnum_t* -> const
char *) to a Python dict */
-SVN_SWIG_SWIGUTIL_EXPORT
PyObject *svn_swig_py_locationhash_to_dict(apr_hash_t *hash);
/* helper function to convert an apr_array_header_t* (of
svn_merge_range_t *) to a Python list */
-SVN_SWIG_SWIGUTIL_EXPORT
PyObject *svn_swig_py_pointerlist_to_list(apr_array_header_t *list,
swig_type_info *type,
PyObject *py_pool);
/* helper function to convert an apr_hash_t* (const char *->array of
svn_merge_range_t *) to a Python dict */
-SVN_SWIG_SWIGUTIL_EXPORT
PyObject *svn_swig_py_mergeinfo_to_dict(apr_hash_t *hash,
swig_type_info *type,
PyObject *py_pool);
/* helper function to convert an apr_hash_t* (const char *->hash of
mergeinfo hashes) to a Python dict */
-SVN_SWIG_SWIGUTIL_EXPORT
PyObject *svn_swig_py_mergeinfo_catalog_to_dict(apr_hash_t *hash,
swig_type_info *type,
PyObject *py_pool);
@@ -156,90 +130,75 @@ PyObject *svn_swig_py_mergeinfo_catalog_
/* helper function to convert an apr_hash_t *(const char *->const char
*) to a Python dict */
-SVN_SWIG_SWIGUTIL_EXPORT
PyObject *svn_swig_py_stringhash_to_dict(apr_hash_t *hash);
/* convert a hash of 'const char *' -> TYPE into a Python dict */
-SVN_SWIG_SWIGUTIL_EXPORT
PyObject *svn_swig_py_convert_hash(apr_hash_t *hash, swig_type_info *type,
PyObject *py_pool);
/* helper function to convert a 'char **' into a Python list of string
objects */
-SVN_SWIG_SWIGUTIL_EXPORT
PyObject *svn_swig_py_c_strings_to_list(char **strings);
/* helper function to convert an array of 'const char *' to a Python list
of string objects */
-SVN_SWIG_SWIGUTIL_EXPORT
PyObject *svn_swig_py_array_to_list(const apr_array_header_t *strings);
/* helper function to convert a hash mapping char * to
* svn_log_changed_path_t * to a Python dict mapping str to str. */
-SVN_SWIG_SWIGUTIL_EXPORT
PyObject *svn_swig_py_changed_path_hash_to_dict(apr_hash_t *hash);
/* helper function to convert a hash mapping char * to
* svn_log_changed_path2_t * to a Python dict mapping str to str. */
-SVN_SWIG_SWIGUTIL_EXPORT
PyObject *svn_swig_py_changed_path2_hash_to_dict(apr_hash_t *hash);
/* helper function to convert an array of 'svn_revnum_t' to a Python list
of int objects */
-SVN_SWIG_SWIGUTIL_EXPORT
PyObject *svn_swig_py_revarray_to_list(const apr_array_header_t *revs);
/* helper function to convert a Python dictionary mapping strings to
strings into an apr_hash_t mapping const char *'s to const char *'s,
allocated in POOL. */
-SVN_SWIG_SWIGUTIL_EXPORT
apr_hash_t *svn_swig_py_stringhash_from_dict(PyObject *dict,
apr_pool_t *pool);
/* helper function to convert a Python dictionary mapping strings to
rangelists into an apr_hash_t mapping const char *'s to rangelists,
allocated in POOL. */
-SVN_SWIG_SWIGUTIL_EXPORT
apr_hash_t *svn_swig_py_mergeinfo_from_dict(PyObject *dict,
apr_pool_t *pool);
/* helper function to convert a Python dictionary mapping strings to
strings into an 'apr_array_header_t *' of svn_prop_t *
allocated in POOL. */
-SVN_SWIG_SWIGUTIL_EXPORT
apr_array_header_t *svn_swig_py_proparray_from_dict(PyObject *dict,
apr_pool_t *pool);
/* helper function to convert a 'apr_array_header_t *' of 'svn_prop_t
to a Python dictionary mapping strings to strings. */
-SVN_SWIG_SWIGUTIL_EXPORT
PyObject *svn_swig_py_proparray_to_dict(const apr_array_header_t *array);
/* helper function to convert a 'apr_array_header_t *' of
'svn_prop_inherited_item_t' to a Python dictionary mapping strings
to dictionary. */
-SVN_SWIG_SWIGUTIL_EXPORT
PyObject *
svn_swig_py_propinheriteditemarray_to_dict(const apr_array_header_t *array);
/* helper function to convert a Python dictionary mapping strings to
strings into an apr_hash_t mapping const char *'s to svn_string_t's,
allocated in POOL. */
-SVN_SWIG_SWIGUTIL_EXPORT
apr_hash_t *svn_swig_py_prophash_from_dict(PyObject *dict,
apr_pool_t *pool);
/* helper function to convert a Python dictionary mapping strings to
integers into an apr_hash_t mapping const char *'s to revnums,
allocated in POOL. */
-SVN_SWIG_SWIGUTIL_EXPORT
apr_hash_t *svn_swig_py_path_revs_hash_from_dict(PyObject *dict,
apr_pool_t *pool);
/* helper function to convert a Python dictionary mapping strings to
SWIG wrappers described by type into an apr_hash_t mapping const char *'s to
struct pointers, allocated in POOL. */
-SVN_SWIG_SWIGUTIL_EXPORT
apr_hash_t *svn_swig_py_struct_ptr_hash_from_dict(PyObject *dict,
swig_type_info *type,
apr_pool_t *pool);
@@ -259,7 +218,6 @@ typedef int (*svn_swig_py_object_unwrap_
In case of failure, raises a Python exception, presuming that seq was the
function argument #argnum.
pool is used to allocate the array. */
-SVN_SWIG_SWIGUTIL_EXPORT
const apr_array_header_t *
svn_swig_py_seq_to_array(PyObject *seq,
int element_size,
@@ -269,7 +227,6 @@ svn_swig_py_seq_to_array(PyObject *seq,
/* An svn_swig_py_object_unwrap_t that extracts a char pointer from a Python
string. */
-SVN_SWIG_SWIGUTIL_EXPORT
int
svn_swig_py_unwrap_string(PyObject *source,
void *destination,
@@ -277,7 +234,6 @@ svn_swig_py_unwrap_string(PyObject *sour
/* An svn_swig_py_object_unwrap_t that extracts an svn_revnum_t from a Python
integer. */
-SVN_SWIG_SWIGUTIL_EXPORT
int
svn_swig_py_unwrap_revnum(PyObject *source,
void *destination,
@@ -285,30 +241,25 @@ svn_swig_py_unwrap_revnum(PyObject *sour
/* An svn_swig_py_object_unwrap_t that extracts a struct pointer from a SWIG
wrapper. baton is expected to be a swig_type_info* describing the struct. */
-SVN_SWIG_SWIGUTIL_EXPORT
int
svn_swig_py_unwrap_struct_ptr(PyObject *source,
void *destination,
void *baton);
/* make an editor that "thunks" from C callbacks up to Python */
-SVN_SWIG_SWIGUTIL_EXPORT
void svn_swig_py_make_editor(const svn_delta_editor_t **editor,
void **edit_baton,
PyObject *py_editor,
apr_pool_t *pool);
-SVN_SWIG_SWIGUTIL_EXPORT
apr_file_t *svn_swig_py_make_file(PyObject *py_file,
apr_pool_t *pool);
-SVN_SWIG_SWIGUTIL_EXPORT
svn_stream_t *svn_swig_py_make_stream(PyObject *py_io,
apr_pool_t *pool);
/* Convert ops, a C array of num_ops elements, to a Python list of SWIG
objects with descriptor op_type_info and pool set to parent_pool. */
-SVN_SWIG_SWIGUTIL_EXPORT
PyObject *
svn_swig_py_convert_txdelta_op_c_array(int num_ops,
svn_txdelta_op_t *ops,
@@ -317,7 +268,6 @@ svn_swig_py_convert_txdelta_op_c_array(i
/* a notify function that executes a Python function that is passed in
via the baton argument */
-SVN_SWIG_SWIGUTIL_EXPORT
void svn_swig_py_notify_func(void *baton,
const char *path,
svn_wc_notify_action_t action,
@@ -327,21 +277,18 @@ void svn_swig_py_notify_func(void *baton
svn_wc_notify_state_t prop_state,
svn_revnum_t revision);
-SVN_SWIG_SWIGUTIL_EXPORT
void svn_swig_py_notify_func2(void *baton,
const svn_wc_notify_t *notify,
apr_pool_t *pool);
/* a status function that executes a Python function that is passed in
via the baton argument */
-SVN_SWIG_SWIGUTIL_EXPORT
void svn_swig_py_status_func(void *baton,
const char *path,
svn_wc_status_t *status);
/* a svn_delta_path_driver callback that executes a Python function
that is passed in via the baton argument */
-SVN_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_py_delta_path_driver_cb_func(void **dir_baton,
void *parent_baton,
void *callback_baton,
@@ -350,24 +297,20 @@ svn_error_t *svn_swig_py_delta_path_driv
/* a status function that executes a Python function that is passed in
via the baton argument */
-SVN_SWIG_SWIGUTIL_EXPORT
void svn_swig_py_status_func2(void *baton,
const char *path,
svn_wc_status2_t *status);
/* a cancel function that executes a Python function passed in via the
cancel_baton argument. */
-SVN_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_py_cancel_func(void *cancel_baton);
/* thunked fs get_locks function */
-SVN_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_py_fs_get_locks_func(void *baton,
svn_lock_t *lock,
apr_pool_t *pool);
/* thunked commit log fetcher */
-SVN_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_py_get_commit_log_func(const char **log_msg,
const char **tmp_file,
const apr_array_header_t *
@@ -376,7 +319,6 @@ svn_error_t *svn_swig_py_get_commit_log_
apr_pool_t *pool);
/* thunked repos authz callback function */
-SVN_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_py_repos_authz_func(svn_boolean_t *allowed,
svn_fs_root_t *root,
const char *path,
@@ -384,14 +326,12 @@ svn_error_t *svn_swig_py_repos_authz_fun
apr_pool_t *pool);
/* thunked history callback function */
-SVN_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_py_repos_history_func(void *baton,
const char *path,
svn_revnum_t revision,
apr_pool_t *pool);
/* thunked log receiver function */
-SVN_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_py_log_receiver(void *py_receiver,
apr_hash_t *changed_paths,
svn_revnum_t rev,
@@ -401,23 +341,19 @@ svn_error_t *svn_swig_py_log_receiver(vo
apr_pool_t *pool);
/* thunked log receiver2 function */
-SVN_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_py_log_entry_receiver(void *baton,
svn_log_entry_t *log_entry,
apr_pool_t *pool);
/* thunked repos freeze function */
-SVN_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_py_repos_freeze_func(void *baton,
apr_pool_t *pool);
/* thunked fs freeze function */
-SVN_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_py_fs_freeze_func(void *baton,
apr_pool_t *pool);
/* thunked proplist receiver2 function */
-SVN_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_py_proplist_receiver2(void *baton,
const char *path,
apr_hash_t *prop_hash,
@@ -425,21 +361,18 @@ svn_error_t *svn_swig_py_proplist_receiv
apr_pool_t *pool);
/* thunked info receiver function */
-SVN_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_py_info_receiver_func(void *py_receiver,
const char *path,
const svn_info_t *info,
apr_pool_t *pool);
/* thunked location segments receiver function */
-SVN_SWIG_SWIGUTIL_EXPORT
svn_error_t *
svn_swig_py_location_segment_receiver_func(svn_location_segment_t *segment,
void *baton,
apr_pool_t *pool);
/* thunked blame receiver function */
-SVN_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_py_client_blame_receiver_func(void *baton,
apr_int64_t line_no,
svn_revnum_t revision,
@@ -449,21 +382,18 @@ svn_error_t *svn_swig_py_client_blame_re
apr_pool_t *pool);
/* thunked changelist receiver function */
-SVN_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_py_changelist_receiver_func(void *baton,
const char *path,
const char *changelist,
apr_pool_t *pool);
/* auth provider callbacks */
-SVN_SWIG_SWIGUTIL_EXPORT
svn_error_t * svn_swig_py_auth_gnome_keyring_unlock_prompt_func(
char **keyring_passwd,
const char *keyring_name,
void *baton,
apr_pool_t *pool);
-SVN_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_py_auth_simple_prompt_func(
svn_auth_cred_simple_t **cred,
void *baton,
@@ -472,7 +402,6 @@ svn_error_t *svn_swig_py_auth_simple_pro
svn_boolean_t may_save,
apr_pool_t *pool);
-SVN_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_py_auth_username_prompt_func(
svn_auth_cred_username_t **cred,
void *baton,
@@ -480,7 +409,6 @@ svn_error_t *svn_swig_py_auth_username_p
svn_boolean_t may_save,
apr_pool_t *pool);
-SVN_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_py_auth_ssl_server_trust_prompt_func(
svn_auth_cred_ssl_server_trust_t **cred,
void *baton,
@@ -490,7 +418,6 @@ svn_error_t *svn_swig_py_auth_ssl_server
svn_boolean_t may_save,
apr_pool_t *pool);
-SVN_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_py_auth_ssl_client_cert_prompt_func(
svn_auth_cred_ssl_client_cert_t **cred,
void *baton,
@@ -498,7 +425,6 @@ svn_error_t *svn_swig_py_auth_ssl_client
svn_boolean_t may_save,
apr_pool_t *pool);
-SVN_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_py_auth_ssl_client_cert_pw_prompt_func(
svn_auth_cred_ssl_client_cert_pw_t **cred,
void *baton,
@@ -507,7 +433,6 @@ svn_error_t *svn_swig_py_auth_ssl_client
apr_pool_t *pool);
/* auth cleanup callback */
-SVN_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_py_config_auth_walk_func(svn_boolean_t *delete_cred,
void *walk_baton,
const char *cred_kind,
@@ -515,32 +440,27 @@ svn_error_t *svn_swig_py_config_auth_wal
apr_hash_t *hash,
apr_pool_t *scratch_pool);
-SVN_SWIG_SWIGUTIL_EXPORT
void
svn_swig_py_setup_ra_callbacks(svn_ra_callbacks2_t **callbacks,
void **baton,
PyObject *py_callbacks,
apr_pool_t *pool);
-SVN_SWIG_SWIGUTIL_EXPORT
svn_wc_diff_callbacks2_t *
svn_swig_py_setup_wc_diff_callbacks2(void **baton,
PyObject *py_callbacks,
apr_pool_t *pool);
-SVN_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_py_commit_callback2(const svn_commit_info_t *commit_info,
void *baton,
apr_pool_t *pool);
-SVN_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_py_commit_callback(svn_revnum_t new_revision,
const char *date,
const char *author,
void *baton);
-SVN_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_py_ra_file_rev_handler_func(
void *baton,
const char *path,
@@ -551,7 +471,6 @@ svn_error_t *svn_swig_py_ra_file_rev_han
apr_array_header_t *prop_diffs,
apr_pool_t *pool);
-SVN_SWIG_SWIGUTIL_EXPORT
svn_error_t *svn_swig_py_ra_lock_callback(
void *baton,
const char *path,
@@ -560,17 +479,14 @@ svn_error_t *svn_swig_py_ra_lock_callbac
svn_error_t *ra_err,
apr_pool_t *pool);
-SVN_SWIG_SWIGUTIL_EXPORT
-extern const svn_ra_reporter2_t swig_py_ra_reporter2;
+const svn_ra_reporter2_t *svn_swig_py_get_ra_reporter2(void);
-SVN_SWIG_SWIGUTIL_EXPORT
svn_boolean_t
svn_swig_py_config_enumerator2(const char *name,
const char *value,
void *baton,
apr_pool_t *pool);
-SVN_SWIG_SWIGUTIL_EXPORT
svn_boolean_t
svn_swig_py_config_section_enumerator2(const char *name,
void *baton,
Modified: subversion/branches/fsfs-improvements/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c
URL: http://svn.apache.org/viewvc/subversion/branches/fsfs-improvements/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c?rev=1506999&r1=1506998&r2=1506999&view=diff
==============================================================================
--- subversion/branches/fsfs-improvements/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c (original)
+++ subversion/branches/fsfs-improvements/subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c Thu Jul 25 14:57:22 2013
@@ -1604,7 +1604,7 @@ typedef struct callback_handle_error_bat
} callback_handle_error_baton_t;
static VALUE
-callback(VALUE baton)
+callback(VALUE baton, ...)
{
callback_baton_t *cbb = (callback_baton_t *)baton;
VALUE result;
@@ -1616,7 +1616,7 @@ callback(VALUE baton)
}
static VALUE
-callback_rescue(VALUE baton)
+callback_rescue(VALUE baton, ...)
{
callback_rescue_baton_t *rescue_baton = (callback_rescue_baton_t*)baton;
@@ -1633,7 +1633,7 @@ callback_rescue(VALUE baton)
}
static VALUE
-callback_ensure(VALUE pool)
+callback_ensure(VALUE pool, ...)
{
svn_swig_rb_pop_pool(pool);
@@ -1654,7 +1654,7 @@ invoke_callback(VALUE baton, VALUE pool)
}
static VALUE
-callback_handle_error(VALUE baton)
+callback_handle_error(VALUE baton, ...)
{
callback_handle_error_baton_t *handle_error_baton;
handle_error_baton = (callback_handle_error_baton_t *)baton;
@@ -4033,4 +4033,7 @@ static svn_ra_reporter3_t rb_ra_reporter
svn_swig_rb_ra_reporter_abort_report
};
-svn_ra_reporter3_t *svn_swig_rb_ra_reporter3 = &rb_ra_reporter3;
+svn_ra_reporter3_t *svn_swig_rb_get_ra_reporter3()
+{
+ return &rb_ra_reporter3;
+}