fixes for valgrind

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@7721 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Marcelo Matus 2005-10-25 14:52:30 +00:00
commit 07df4a57db
3 changed files with 8 additions and 7 deletions

View file

@ -27,7 +27,7 @@
const char * casts1(const char *m = (const char *) NULL) { const char * casts1(const char *m = (const char *) NULL) {
char *ret = NULL; char *ret = NULL;
if (m) { if (m) {
ret = new char[strlen(m+1)]; ret = new char[strlen(m)+1];
strcpy(ret, m); strcpy(ret, m);
} }
return ret; return ret;
@ -35,7 +35,7 @@
const char * casts2(const char *m = (const char *) "Hello") { const char * casts2(const char *m = (const char *) "Hello") {
char *ret = NULL; char *ret = NULL;
if (m) { if (m) {
ret = new char[strlen(m+1)]; ret = new char[strlen(m)+1];
strcpy(ret, m); strcpy(ret, m);
} }
return ret; return ret;

View file

@ -50,10 +50,10 @@ SWIG_FromCharPtrAndSize(const char* carray, size_t size)
memcpy(tmp, carray, size); memcpy(tmp, carray, size);
tmp[size] = 0; tmp[size] = 0;
sv_setpv(obj, tmp); sv_setpv(obj, tmp);
%delete(tmp); %delete_array(tmp);
} }
} else { } else {
sv_setpv(obj, 0); sv_setpv(obj, "");
} }
return obj; return obj;
} }

View file

@ -66,18 +66,19 @@
%set_output(obj) %enddef %set_output(obj) %enddef
/* variable output */ /* variable output */
%define %set_varoutput(obj) sv_setsv($result,obj) %enddef %define %set_varoutput(obj) sv_setsv($result,obj); SvREFCNT_dec(obj) %enddef
/* constant */ /* constant */
%define %set_constant(name, obj) %begin_block %define %set_constant(name, obj) %begin_block
SV *sv = get_sv((char*) SWIG_prefix name, TRUE | 0x2); SV *sv = get_sv((char*) SWIG_prefix name, TRUE | 0x2);
sv_setsv(sv, obj); sv_setsv(sv, obj);
SvREFCNT_dec(obj);
SvREADONLY_on(sv); SvREADONLY_on(sv);
%end_block %enddef %end_block %enddef
/* raise exception */ /* raise exception */
%define %raise(obj, type, desc) %define %raise(obj, type, desc)
sv_setsv(perl_get_sv("@", TRUE), obj); sv_setsv(perl_get_sv("@", TRUE), obj);
croak(Nullch) %enddef croak(Nullch) %enddef
/* Include the unified typemap library */ /* Include the unified typemap library */