From ead70adb569e9f49406abb7dd7c9bf8ddd61ccfa Mon Sep 17 00:00:00 2001 From: Marcelo Matus Date: Tue, 25 Oct 2005 15:15:42 +0000 Subject: [PATCH] more fixes for valgrind git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7722 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- Examples/test-suite/perl5/enum_thorough_runme.pl | 2 ++ Lib/perl5/perlrun.swg | 6 ++++-- Lib/perl5/perltypemaps.swg | 6 +++--- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Examples/test-suite/perl5/enum_thorough_runme.pl b/Examples/test-suite/perl5/enum_thorough_runme.pl index f904f1439..38967e4ef 100644 --- a/Examples/test-suite/perl5/enum_thorough_runme.pl +++ b/Examples/test-suite/perl5/enum_thorough_runme.pl @@ -1,5 +1,7 @@ use enum_thorough; +$enum_thorough::myColour; + # Just test an in and out typemap for enum SWIGTYPE and const enum SWIGTYPE & typemaps if (enum_thorough::speedTest4($enum_thorough::SpeedClass::slow) != $enum_thorough::SpeedClass::slow) { diff --git a/Lib/perl5/perlrun.swg b/Lib/perl5/perlrun.swg index 4d3540e28..281f01afc 100644 --- a/Lib/perl5/perlrun.swg +++ b/Lib/perl5/perlrun.swg @@ -156,8 +156,10 @@ SWIG_Perl_ConvertPtr(SWIG_MAYBE_PERL_OBJECT SV *sv, void **ptr, swig_type_info * To set ownership (see bellow), an newSViv(1) entry is added. Hence, to remove ownership, we delete the entry. */ - SV *v = hv_delete_ent(hv, obj, 0, 0); - if (v) SvREFCNT_dec(v); + + /* SV *val = */ + hv_delete_ent(hv, obj, 0, 0); + /* if (val) SvREFCNT_dec(val); */ } } return SWIG_OK; diff --git a/Lib/perl5/perltypemaps.swg b/Lib/perl5/perltypemaps.swg index fec858ab1..974a7c4b0 100644 --- a/Lib/perl5/perltypemaps.swg +++ b/Lib/perl5/perltypemaps.swg @@ -66,13 +66,13 @@ %set_output(obj) %enddef /* variable output */ -%define %set_varoutput(obj) sv_setsv($result,obj); SvREFCNT_dec(obj) %enddef +%define %set_varoutput(obj) sv_setsv($result,obj) %enddef /* constant */ %define %set_constant(name, obj) %begin_block + SV *_obj = obj; SV *sv = get_sv((char*) SWIG_prefix name, TRUE | 0x2); - sv_setsv(sv, obj); - SvREFCNT_dec(obj); + sv_setsv(sv, _obj); SvREADONLY_on(sv); %end_block %enddef