From: Gabriel R. <gab...@ar...> - 2009-10-05 15:12:42
|
Josh Cherry wrote: > > > On Mon, 21 Sep 2009, gab...@ar... wrote: > >> I keep on getting a "bus error" when I activate this in my .i : >> >> %typemap(out) true_or_false { >> if($1 <= 0) >> $result = Py_False; >> else >> $result = Py_True; >> } >> >> where true_or_false is defined in my .h as : >> >> typedef int true_or_false; >> >> but if I comment it out (and adjust the conditions in the test code) >> I no >> longer get it. Does anyone have an idea why this happens? It doesn't >> happen on the first call, just kind of randomly. > > Probably because you're not adjusting the reference counts on the > Python objects. > > Josh > so I should do something like this : %typemap(out) true_or_false { if($1 <= 0) $result = Py_False; else $result = Py_True; Py_CLEAR($1); Py_INCREF($result); } Gabriel |