I have a question about the current type mapping that swig does for GUID pointers. Currently, if a C function returns a GUID* that is a null pointer (== NULL), swig converts it to SCM_UNDEFINED and hands that to guile. From src/base-typemaps.i: %typemap(out) GUID * " $result = ($1) ? gnc_guid2scm(*($1)): SCM_UNDEFINED; "
Unfortunately, returning SCM_UNDEFINED to guile causes the variable on the guile side to become unbound, leading to crashes (bug #530819, for example). There is apparently no way to test for this condition from guile, so it seems to me that swig should never return SCM_UNDEFINED to guile. Does anyone know why the type mapping has been defined this way? Shouldn't it be redefined to return SCM_BOOL_F instead? Cheers, Charles _______________________________________________ gnucash-devel mailing list [email protected] https://lists.gnucash.org/mailman/listinfo/gnucash-devel
