From: John L. <jl...@ma...> - 2007-05-03 05:37:42
|
On 05/02/2007 08:44 PM, speedy wrote: > ps. I wonder how hard would be for SWIG wrapper code to avoid crashing on such conflicts with some > kind of error report? > I haven't seen the exact crash, but I suspect it isn't SWIG that is crashing... what happens is that SWIG stores the pointer value in what is essentially a void *, and then also stores type information. Then in the wrapper function, it extracts the type information and checks if it is the type it is expecting. If so, it then casts the void * to whatever type. So when you have type name conflicts (like we are talking about), swig is casting something to a type that it really isn't. Then when that pointer is passed to the underlying code, that is where the crash or corruption happens. SWIG already issues an error if the type it receives does not match what is expected.... problem is SWIG can't tell the difference. John PS Thanks for helping with the docs! |