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