From: Oliver B. <oli...@jk...> - 2010-12-03 18:41:50
|
Am 03.12.2010 19:17, schrieb William S Fulton: > Oliver Buchtala wrote: >> Can not get SWIG (target: Java) to use an (existing) proxy of a class >> when it is behind a typedef'd pointer. >> >> Example: >> >> class A {...}; >> A* goodFunction(); >> >> In this case, all is fine: proxy for A exists; the proxied function >> makes use of A's proxy. >> >> typedef A* APtr; >> APtr badFunction(); >> (typedef replicated in .i-file) >> >> Here, badFunction is proxied as >> SWIGTYPE_p_A badFunction(); >> i.e., typedef resolved, but no proxy anymore... >> >> Is this known as a problem or some fault on my side? >> Is there a workaround other than using the preproc define to branch >> source code? > SWIG must parse the declaration of A at some point otherwise it treats > it as an opaque type, for which there is no proxy and hence a type > wrapper class. > > William Hi William, thanks for your response. (I sent this again, as I forgot to set the user list on cc) Obviously, I have not described my problem clearly enough. If I use the pointers in the signatures (without typedef), everythings fine. But, when I use a typdef for this pointer type and also show SWIG this definition, these proxies are not resolved. I can see that SWIG knows about the typedef as it produces a proxy to a pointer to the class (i.e., SWIGTYPE_p_A). It seems that SWIG does not map the typedef-type (APtr) to the existing proxy class (A). Thanks, Oliver |