Fukuda Masaki wrote:
> 
> Hello folks,
> 
> I'm trying to generate python bindings of my application.
> I got a problem in virtual handler that return class-type.
> I can not get correct return value in C++ side.

...

> In sipVH_xxxx() generated by sip-0.9, do Py_DECREF(resobj)
> before return. I think, when Py_DECREF do, the memory pointed
>  by 'res' released, correct?
> 
> Does anyone have this solution?
> 
> thanks in advanse.
> 
> ------------------------------------------
> Masaki Fukuda <[EMAIL PROTECTED]>
> (BCDE)Weathernews, Inc.
> Phone:043-274-5508, FAX:043-274-4957,4955

Good spot. The (very quickly put together) patch to sip should fix it.
This won't be the final solution.

Phil
diff -ruN sip-0.9.orig/sip/gencode.c sip-0.9/sip/gencode.c
--- sip-0.9.orig/sip/gencode.c  Thu Sep  2 00:44:41 1999
+++ sip-0.9/sip/gencode.c       Sun Oct 24 10:47:27 1999
@@ -2507,7 +2507,14 @@
                else
                        fprintf(fp,
 "              if (sipCanConvertToCpp(resobj,sipClass_%s))\n"
+"              {\n"
+"                      sipThisType *resThis;\n"
+"\n"
 "                      res = (%s *)sipConvertToCpp(resobj,sipClass_%s,&iserr);\n"
+"\n"
+"                      if ((resThis = sipMapSelfToThis(resobj)) != NULL)\n"
+"                              sipResetPyOwned(resThis);\n"
+"              }\n"
                                ,rcname,rcname,rcname);
 
                fputs(

Reply via email to