From: William S F. <ws...@fu...> - 2010-05-26 23:27:04
|
Vadim Zeitlin wrote: > On Wed, 26 May 2010 06:57:33 +0100 William S Fulton <ws...@fu...> wrote: > > WSF> Vadim Zeitlin wrote: > WSF> > Hello, > WSF> > > WSF> > I've updated to r12045 to test the latest shared-pointer-related changes > WSF> > and the new %shared_ptr looks great, it's much better than the old > WSF> > SWIG_SHARED_PTR and especially SWIG_SHARED_PTR_DERIVED hacks. Unfortunately > WSF> > it doesn't seem to work for me when wrapping vectors of shared_ptr, here is > WSF> > the most trivial example possible: > WSF> > > WSF> > $ cat vec_ptr.i > WSF> > %module vec_ptr; > WSF> > > WSF> > %include "boost_shared_ptr.i" > WSF> > %include "std_vector.i" > WSF> > > WSF> > %shared_ptr(Foo); > WSF> > %template(Foos) std::vector< boost::shared_ptr<Foo> >; > WSF> > $ swig -c++ -csharp vec_ptr.i > WSF> > vec_ptr.i(4) : Error: Recursive $typemap calls not supported - $typemap(cstype, Foo) > WSF> > vec_ptr.i(4) : Error: Recursive $typemap calls not supported - $typemap(cstype, Foo) > WSF> > > WSF> > WSF> :( I guess I'll have to look at supporting this. Investigating... > > Thanks a lot in advance! This is used in dozens of places by the project I > am working on so it would be really catastrophic for it if it stopped > working in 2.0. As usual, I'd like to help but I don't really know where to > start looking, it seems pretty clear that we do need the typemap in > csharp/std_vector.i which provokes the error but I don't know why did it > work before and not any more as this file didn't change at all. > > BTW, I should have mentioned that the problem is specific to C# backend, > at least Java works fine. It also is unrelated to the previously mentioned > SWIG_STD_VECTOR_ENHANCED, i.e. it doesn't work neither with nor without it. > And, of course, you already know that this regression was introduced in > r12037 ("shared_ptr improvements so the proxy class does not need to be > specified - SWIG_SHARED_PTR macro deprecated and replaced by %shared_ptr"). > Working now as I've added in the ability for $typemap special variable macros to make accept other $typemap calls, please try again. William |