Author: rdonch
Date: Mon Aug 2 23:00:48 2010
New Revision: 981701
URL: http://svn.apache.org/viewvc?rev=981701&view=rev
Log:
Move the descriptor query for "svn_txdelta_op_t *" into the module code;
when it's in libsvn_swig_py, SWIG crashes.
* subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c,
subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h:
(svn_swig_py_txdelta_window_t_ops_get): Add the op_type_info parameter,
and get the descriptor from it, instead of querying directly.
* subversion/bindings/swig/svn_delta.i:
(svn_txdelta_window_t_ops_get): Do the query here, and pass the result
to svn_swig_py_txdelta_window_t_ops_get.
Modified:
subversion/trunk/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
subversion/trunk/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h
subversion/trunk/subversion/bindings/swig/svn_delta.i
Modified:
subversion/trunk/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c?rev=981701&r1=981700&r2=981701&view=diff
==============================================================================
---
subversion/trunk/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
(original)
+++
subversion/trunk/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
Mon Aug 2 23:00:48 2010
@@ -4072,15 +4072,15 @@ svn_swig_py_setup_wc_diff_callbacks2(voi
}
PyObject *
-svn_swig_py_txdelta_window_t_ops_get(svn_txdelta_window_t *window)
+svn_swig_py_txdelta_window_t_ops_get(svn_txdelta_window_t *window,
+ swig_type_info * op_type_info)
{
PyObject *result = PyList_New(window->num_ops);
- swig_type_info *op_type_info = SWIG_TypeQuery("svn_txdelta_op_t *");
int i;
-
+
for (i = 0; i < window->num_ops; ++i)
PyList_SET_ITEM(result, i,
- SWIG_NewPointerObj(window->ops + i, op_type_info, 0));
+ SWIG_NewPointerObj(window->ops + i, op_type_info, 0));
return result;
}
Modified:
subversion/trunk/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h?rev=981701&r1=981700&r2=981701&view=diff
==============================================================================
---
subversion/trunk/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h
(original)
+++
subversion/trunk/subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.h
Mon Aug 2 23:00:48 2010
@@ -509,10 +509,12 @@ SVN_SWIG_SWIGUTIL_EXPORT
extern const svn_ra_reporter2_t swig_py_ra_reporter2;
/* Get a list of ops from a window. Used to replace the naive
- svn_txdelta_window_t.ops accessor. */
+ svn_txdelta_window_t.ops accessor. op_type_info is supposed to be
+ the SWIG descriptor of "svn_txdelta_op_t *". */
SVN_SWIG_SWIGUTIL_EXPORT
PyObject *
-svn_swig_py_txdelta_window_t_ops_get(svn_txdelta_window_t *window);
+svn_swig_py_txdelta_window_t_ops_get(svn_txdelta_window_t *window,
+ swig_type_info * op_type_info);
#ifdef __cplusplus
}
Modified: subversion/trunk/subversion/bindings/swig/svn_delta.i
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/swig/svn_delta.i?rev=981701&r1=981700&r2=981701&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/swig/svn_delta.i (original)
+++ subversion/trunk/subversion/bindings/swig/svn_delta.i Mon Aug 2 23:00:48
2010
@@ -178,7 +178,8 @@ svn_txdelta_window_t_ops_get(svn_txdelta
static PyObject *
svn_txdelta_window_t_ops_get(svn_txdelta_window_t *window)
{
- return svn_swig_py_txdelta_window_t_ops_get(window);
+ return svn_swig_py_txdelta_window_t_ops_get(window,
+ SWIG_TypeQuery("svn_txdelta_op_t *"));
}
%}
#endif