You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucy.apache.org by ma...@apache.org on 2011/02/17 00:40:36 UTC

[lucy-commits] svn commit: r1071444 - /incubator/lucy/trunk/clownfish/lib/Clownfish.xs

Author: marvin
Date: Wed Feb 16 23:40:36 2011
New Revision: 1071444

URL: http://svn.apache.org/viewvc?rev=1071444&view=rev
Log:
Fix some refcount leaks within XS bindings for various CFC constructors.

Modified:
    incubator/lucy/trunk/clownfish/lib/Clownfish.xs

Modified: incubator/lucy/trunk/clownfish/lib/Clownfish.xs
URL: http://svn.apache.org/viewvc/incubator/lucy/trunk/clownfish/lib/Clownfish.xs?rev=1071444&r1=1071443&r2=1071444&view=diff
==============================================================================
--- incubator/lucy/trunk/clownfish/lib/Clownfish.xs (original)
+++ incubator/lucy/trunk/clownfish/lib/Clownfish.xs Wed Feb 16 23:40:36 2011
@@ -642,6 +642,7 @@ CODE:
     CFCType *self = CFCType_new(flags, parcel, specifier, indirection, 
         c_string);
     RETVAL = newRV((SV*)CFCType_get_perl_obj(self));
+    SvREFCNT_dec(SvRV(RETVAL));
 OUTPUT: RETVAL
 
 SV*
@@ -652,6 +653,7 @@ _new_integer(klass, flags, specifier)
 CODE:
     CFCType *self = CFCType_new_integer(flags, specifier);
     RETVAL = newRV((SV*)CFCType_get_perl_obj(self));
+    SvREFCNT_dec(SvRV(RETVAL));
 OUTPUT: RETVAL
 
 SV*
@@ -662,6 +664,7 @@ _new_float(klass, flags, specifier)
 CODE:
     CFCType *self = CFCType_new_float(flags, specifier);
     RETVAL = newRV((SV*)CFCType_get_perl_obj(self));
+    SvREFCNT_dec(SvRV(RETVAL));
 OUTPUT: RETVAL
 
 SV*
@@ -679,6 +682,7 @@ CODE:
     }   
     CFCType *self = CFCType_new_object(flags, parcel, specifier, indirection);
     RETVAL = newRV((SV*)CFCType_get_perl_obj(self));
+    SvREFCNT_dec(SvRV(RETVAL));
 OUTPUT: RETVAL
 
 SV*
@@ -699,6 +703,7 @@ CODE:
     }
     CFCType *self = CFCType_new_composite(flags, child, indirection, array);
     RETVAL = newRV((SV*)CFCType_get_perl_obj(self));
+    SvREFCNT_dec(SvRV(RETVAL));
 OUTPUT: RETVAL
 
 SV*
@@ -708,6 +713,7 @@ _new_void(klass, is_const)
 CODE:
     CFCType *self = CFCType_new_void(is_const);
     RETVAL = newRV((SV*)CFCType_get_perl_obj(self));
+    SvREFCNT_dec(SvRV(RETVAL));
 OUTPUT: RETVAL
 
 SV*
@@ -716,6 +722,7 @@ _new_va_list(klass)
 CODE:
     CFCType *self = CFCType_new_va_list();
     RETVAL = newRV((SV*)CFCType_get_perl_obj(self));
+    SvREFCNT_dec(SvRV(RETVAL));
 OUTPUT: RETVAL
 
 SV*
@@ -731,6 +738,7 @@ CODE:
     }   
     CFCType *self = CFCType_new_arbitrary(parcel, specifier);
     RETVAL = newRV((SV*)CFCType_get_perl_obj(self));
+    SvREFCNT_dec(SvRV(RETVAL));
 OUTPUT: RETVAL
 
 void
@@ -976,6 +984,7 @@ CODE:
     CFCVariable *self = CFCVariable_new(parcel, exposure, class_name,
         class_cnick, micro_sym, type);
     RETVAL = newRV(CFCVariable_get_perl_obj(self));
+    SvREFCNT_dec(SvRV(RETVAL));
 OUTPUT: RETVAL
 
 void