On Mon, Feb 7, 2011 at 12:10 PM, Philip Martin <philip.mar...@wandisco.com> wrote: > Johan Corveleyn <jcor...@gmail.com> writes: > >> Apparently I broke the builds on the builtbots yesterday evening, >> after integrating the diff-optimizations-bytes branch. Sorry for that. >> >> There were two problems: >> - Failing diff-diff3-test.exe (actually hanging). This was rectified >> in r1067839. >> >> - Failing (python) bindings. I could use some help with that (I don't >> understand how these are generated, and where/what I should change). >> This is the relevant excerpt from stdio from svn-x64-centos gcc: > > On Linux one runs 'make swig-py' to build the Python SWIG bindings and > 'make check-swig-py' to run the tests. > > SWIG generates C code from the .i files in subversion/bindings/swig, > maybe using the subversion/include headers as well (I'm not an expert). > >> >> [[[ >> subversion/bindings/swig/python/svn_diff.c: In function >> 'svn_diff_fns2_invoke_datasources_open': >> subversion/bindings/swig/python/svn_diff.c:2838: warning: passing >> argument 3 of '_obj->datasources_open' makes pointer from integer >> without a cast >> subversion/bindings/swig/python/svn_diff.c:2838: error: too few >> arguments to function '_obj->datasources_open' >> subversion/bindings/swig/python/svn_diff.c:2839: warning: control >> reaches end of non-void function >> ]]] >> >> Can someone, more knowledgeable than me with the bindings, take a look >> at this and/or give me a pointer for what I should do? > > Looking at the declaration in svn_diff.h: > > /** A vtable for reading data from the three datasources. */ > typedef struct svn_diff_fns2_t > { > /** Open the datasources of type @a datasources. */ > svn_error_t *(*datasources_open)(void *diff_baton, apr_off_t *prefix_lines, > svn_diff_datasource_e datasource[], > apr_size_t datasource_len); > > and the generated code: > > static svn_error_t * svn_diff_fns2_invoke_datasources_open( > svn_diff_fns2_t * _obj, void *diff_baton, apr_off_t *prefix_lines, > svn_diff_da > tasource_e datasource[], apr_size_t datasource_len) { > return (_obj->datasources_open)(diff_baton, prefix_lines, datasource_len); > } > > I see that SWIG has simply dropped the datasource parameter. Perhaps > SWIG cannot cope with the [] syntax? Could you use * instead?
Local testing reveals this to work. I may not be able to work up a commit for a couple of hours; if somebody wants to do it sooner, feel free. -Hyrum