Jun Omae <jun66j5 at gmail.com>


Patch
r1851888, r1848763, r1848577

r1851888 | futatuki | 2019-01-23 01:43:30 -0600 (Wed, 23 Jan 2019)

On branch swig-py3: Fix Python exception handling in callback function

* subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
 (svn_swig_py_status_func2): Clear python exception if it caused in Python
  call back function. (To avoid crash in py3) 

* subversion/bindings/swig/python/tests/wc.py
 (SubversionWorkingCopyTestCase.test_status_editor): Remove an assertion
  from call back because it takes no effect, and check result after 
  svn_wc_get_status_editor2() API call instead.
 (SubversionWorkingCopyTestCase.test_status_editor_callback_exception):
  New test case for Python exception within svn_wc_status_func2 call back.
   
Patch by: Jun Omae <jun66j5 at gmail.com>
          (Tweaked by me.)


r1848763 | cmpilato | 2018-12-12 07:57:17 -0600 (Wed, 12 Dec 2018)

swig-py: Followup to r1848577, simplifying svn_stream_t pointer handling.

* subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
  (svn_swig_py_make_stream): Use svn_swig_py_convert_ptr() rather than
    manually checking for an instance of libsvn.core.svn_stream_t
    using Python APIs.

Patch by: Jun Omae <jun66j5 at gmail.com>

r1848577 | cmpilato | 2018-12-10 07:35:07 -0600 (Mon, 10 Dec 2018)

swig-py: Followup to r1848425, moving the bulk of the stream
conversion logic into libsvn_swig_py (instead of having it duplicated
dozens of times in generated code).

* subversion/bindings/swig/include/svn_types.swg
  (%typemap(in) svn_stream_t *WRAPPED_STREAM): Move the logic of
    handling multiple stream-like input types...

* subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
  (svn_swig_py_make_stream): ...to here.
  (parse_fn3_set_fulltext): Raise a callback exception if stream
    construction fails.

* subversion/bindings/swig/python/tests/repository.py
  (test_parse_fns3_invalid_set_fulltext): New test.

Patch by: Yasuhito FUTATSUKI <futatuki at yf.bsdclub.org>
          Jun Omae <jun66j5 at gmail.com>
          (Tweaked by me.)