diff --git a/Doc/Manual/SWIG.html b/Doc/Manual/SWIG.html index 0d52a9cf7..a42c7e449 100644 --- a/Doc/Manual/SWIG.html +++ b/Doc/Manual/SWIG.html @@ -1470,14 +1470,14 @@ SWIG generates the following code:
 /* C mode */
 void foo_set(char *value) {
-  if (foo) free(foo);
+  free(foo);
   foo = (char *) malloc(strlen(value)+1);
   strcpy(foo, value);
 }
 
 /* C++ mode.  When -c++ option is used */
 void foo_set(char *value) {
-  if (foo) delete [] foo;
+  delete [] foo;
   foo = new char[strlen(value)+1];
   strcpy(foo, value);
 }
@@ -2635,8 +2635,7 @@ char *Foo_name_get(Foo *obj) {
 }
 
 char *Foo_name_set(Foo *obj, char *c) {
-  if (obj->name)
-    free(obj->name);
+  free(obj->name);
   obj->name = (char *) malloc(strlen(c)+1);
   strcpy(obj->name, c);
   return obj->name;
diff --git a/Doc/Manual/Tcl.html b/Doc/Manual/Tcl.html
index 0a22afb18..de44c54ed 100644
--- a/Doc/Manual/Tcl.html
+++ b/Doc/Manual/Tcl.html
@@ -2811,9 +2811,7 @@ used as a char ** object.
 
 // This gives SWIG some cleanup code that will get called after the function call
 %typemap(freearg) char ** {
-  if ($1) {
-    free($1);
-  }
+  free($1);
 }
 
 // Now a test functions
diff --git a/Doc/Manual/Typemaps.html b/Doc/Manual/Typemaps.html
index a12ede553..220af4398 100644
--- a/Doc/Manual/Typemaps.html
+++ b/Doc/Manual/Typemaps.html
@@ -3103,7 +3103,7 @@ as shown.   To work with heap allocated data, the following technique can be use
   }
 }
 %typemap(freearg) float value[ANY] {
-  if ($1) free($1);
+  free($1);
 }
 
@@ -3556,7 +3556,7 @@ maps perform the conversion described for the above example: } %typemap(freearg) (int argc, char *argv[]) { - if ($2) free($2); + free($2); } /* Required for C++ method overloading */ diff --git a/Examples/guile/multimap/example.i b/Examples/guile/multimap/example.i index c24d45ddc..776eb30c4 100644 --- a/Examples/guile/multimap/example.i +++ b/Examples/guile/multimap/example.i @@ -78,7 +78,7 @@ extern int count(char *bytes, int len, char c); %typemap(argout) (char *str, int len) { SWIG_APPEND_VALUE(scm_from_locale_stringn($1,$2)); - if ($1) SWIG_free($1); + SWIG_free($1); } extern void capitalize(char *str, int len); diff --git a/Examples/test-suite/namespace_typemap.i b/Examples/test-suite/namespace_typemap.i index 9c74715f0..42edd2844 100644 --- a/Examples/test-suite/namespace_typemap.i +++ b/Examples/test-suite/namespace_typemap.i @@ -15,7 +15,7 @@ namespace test { strcpy(data,s); } ~string_class() { - if (data) delete [] data; + delete [] data; } char *c_str() { return data; diff --git a/Examples/xml/example_apply.expected-xml b/Examples/xml/example_apply.expected-xml index 6118ef1f2..26cf5df2f 100644 --- a/Examples/xml/example_apply.expected-xml +++ b/Examples/xml/example_apply.expected-xml @@ -409,7 +409,7 @@ static void _ptrset(SV *_PTRVALUE, SV *value, int index, char *type) { } else if (strcmp(type,"char *") == 0) { char *c = SvPV(value,PL_na); char **ca = (char **) ptr; - if (ca[index]) free(ca[index]); + free(ca[index]); if (strcmp(c,"NULL") == 0) { ca[index] = 0; } else { @@ -500,8 +500,7 @@ void _ptrfree(SV *_PTRVALUE) { } } } - if (ptr) - free((char *) ptr); + free((char *) ptr); } diff --git a/Examples/xml/example_xml.expected-xml b/Examples/xml/example_xml.expected-xml index 4d08b206a..e13bcf24b 100644 --- a/Examples/xml/example_xml.expected-xml +++ b/Examples/xml/example_xml.expected-xml @@ -441,7 +441,7 @@ static void _ptrset(SV *_PTRVALUE, SV *value, int index, char *type) { } else if (strcmp(type,"char *") == 0) { char *c = SvPV(value,PL_na); char **ca = (char **) ptr; - if (ca[index]) free(ca[index]); + free(ca[index]); if (strcmp(c,"NULL") == 0) { ca[index] = 0; } else { @@ -532,8 +532,7 @@ void _ptrfree(SV *_PTRVALUE) { } } } - if (ptr) - free((char *) ptr); + free((char *) ptr); } diff --git a/Lib/cpointer.i b/Lib/cpointer.i index 881c511fc..6eb509d7e 100644 --- a/Lib/cpointer.i +++ b/Lib/cpointer.i @@ -55,14 +55,14 @@ NAME() { return new TYPE(); } ~NAME() { - if ($self) delete $self; + delete $self; } #else NAME() { return (TYPE *) calloc(1,sizeof(TYPE)); } ~NAME() { - if ($self) free($self); + free($self); } #endif } @@ -134,9 +134,9 @@ static TYPE *copy_##NAME(TYPE value) { %} static void delete_##NAME(TYPE *obj) { %} #ifdef __cplusplus -%{ if (obj) delete obj; %} +%{ delete obj; %} #else -%{ if (obj) free(obj); %} +%{ free(obj); %} #endif %{} diff --git a/Lib/d/cpointer.i b/Lib/d/cpointer.i index 75e610f67..da3084b7a 100644 --- a/Lib/d/cpointer.i +++ b/Lib/d/cpointer.i @@ -54,14 +54,14 @@ NAME() { return new TYPE(); } ~NAME() { - if (self) delete self; + delete self; } #else NAME() { return (TYPE *) calloc(1,sizeof(TYPE)); } ~NAME() { - if (self) free(self); + free(self); } #endif } @@ -133,9 +133,9 @@ static TYPE *copy_##NAME(TYPE value) { %} static void delete_##NAME(TYPE *self) { %} #ifdef __cplusplus -%{ if (self) delete self; %} +%{ delete self; %} #else -%{ if (self) free(self); %} +%{ free(self); %} #endif %{} diff --git a/Lib/guile/list-vector.i b/Lib/guile/list-vector.i index 057a1da5b..824052599 100644 --- a/Lib/guile/list-vector.i +++ b/Lib/guile/list-vector.i @@ -107,7 +107,7 @@ (size_t VECTORLENINPUT, C_TYPE *VECTORINPUT), (int LISTLENINPUT, C_TYPE *LISTINPUT), (size_t LISTLENINPUT, C_TYPE *LISTINPUT) - {if ($2!=NULL) SWIG_free($2);} + {SWIG_free($2);} %enddef @@ -173,7 +173,7 @@ (int *LISTLENOUTPUT, C_TYPE **LISTOUTPUT), (size_t *LISTLENOUTPUT, C_TYPE **LISTOUTPUT) { - if ((*$2)!=NULL) free(*$2); + free(*$2); } %enddef @@ -231,7 +231,7 @@ TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(const char *, SWIG_scm2str, SWIG_str02scm, stri if ((*$2)!=NULL) { int i; for (i = 0; i < *$1; i++) { - if ((*$2)[i] != NULL) free((*$2)[i]); + free((*$2)[i]); } free(*$2); } @@ -249,7 +249,7 @@ TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(const char *, SWIG_scm2str, SWIG_str02scm, stri if (($2)!=NULL) { int i; for (i = 0; i< $1; i++) - if (($2)[i] != NULL) free(($2)[i]); + free(($2)[i]); free($2); } } @@ -360,7 +360,7 @@ TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(const char *, SWIG_scm2str, SWIG_str02scm, stri const C_TYPE *PARALLEL_VECTORINPUT, C_TYPE *PARALLEL_LISTINPUT, const C_TYPE *PARALLEL_LISTINPUT - {if ($1!=NULL) SWIG_free($1);} + {SWIG_free($1);} %enddef @@ -422,7 +422,7 @@ TYPEMAP_LIST_VECTOR_INPUT_OUTPUT(const char *, SWIG_scm2str, SWIG_str02scm, stri %typemap(freearg) C_TYPE **PARALLEL_VECTOROUTPUT, C_TYPE **PARALLEL_LISTOUTPUT { - if ((*$1)!=NULL) free(*$1); + free(*$1); } %enddef @@ -471,7 +471,7 @@ TYPEMAP_PARALLEL_LIST_VECTOR_INPUT_OUTPUT(const char *, SWIG_scm2str, SWIG_str02 if (($1)!=NULL) { int i; for (i = 0; i<*_global_list_length; i++) - if (($1)[i] != NULL) SWIG_free(($1)[i]); + SWIG_free(($1)[i]); SWIG_free($1); } } @@ -482,7 +482,7 @@ TYPEMAP_PARALLEL_LIST_VECTOR_INPUT_OUTPUT(const char *, SWIG_scm2str, SWIG_str02 if ((*$1)!=NULL) { int i; for (i = 0; i<_global_arraylentemp; i++) - if ((*$1)[i] != NULL) free((*$1)[i]); + free((*$1)[i]); free(*$1); } } diff --git a/Lib/guile/std_common.i b/Lib/guile/std_common.i index 5899c5548..979744976 100644 --- a/Lib/guile/std_common.i +++ b/Lib/guile/std_common.i @@ -19,7 +19,7 @@ std::string SWIG_scm2string(SCM x) { char* temp; temp = SWIG_scm2str(x); std::string s(temp); - if (temp) SWIG_free(temp); + SWIG_free(temp); return s; } %} diff --git a/Lib/guile/std_string.i b/Lib/guile/std_string.i index 6513173ee..fbd27547f 100644 --- a/Lib/guile/std_string.i +++ b/Lib/guile/std_string.i @@ -30,7 +30,7 @@ namespace std { if (scm_is_string($input)) { tempptr = SWIG_scm2str($input); $1.assign(tempptr); - if (tempptr) SWIG_free(tempptr); + SWIG_free(tempptr); } else { SWIG_exception(SWIG_TypeError, "string expected"); } @@ -40,7 +40,7 @@ namespace std { if (scm_is_string($input)) { tempptr = SWIG_scm2str($input); temp.assign(tempptr); - if (tempptr) SWIG_free(tempptr); + SWIG_free(tempptr); $1 = &temp; } else { SWIG_exception(SWIG_TypeError, "string expected"); @@ -51,7 +51,7 @@ namespace std { if (scm_is_string($input)) { tempptr = SWIG_scm2str($input); $1 = new $*1_ltype(tempptr); - if (tempptr) SWIG_free(tempptr); + SWIG_free(tempptr); } else { SWIG_exception(SWIG_TypeError, "string expected"); } @@ -73,7 +73,7 @@ namespace std { if (scm_is_string($input)) { char *tempptr = SWIG_scm2str($input); $1.assign(tempptr); - if (tempptr) SWIG_free(tempptr); + SWIG_free(tempptr); } else { SWIG_exception(SWIG_TypeError, "string expected"); } diff --git a/Lib/guile/typemaps.i b/Lib/guile/typemaps.i index 84a754d8b..f4d3a0118 100644 --- a/Lib/guile/typemaps.i +++ b/Lib/guile/typemaps.i @@ -322,8 +322,8 @@ SIMPLE_MAP(unsigned long long, scm_to_ulong_long, scm_from_ulong_long, integer); /* SWIG_scm2str makes a malloc'ed copy of the string, so get rid of it after the function call. */ -%typemap (freearg) char * "if (must_free$argnum && $1) SWIG_free($1);"; -%typemap (freearg) char **INPUT, char **BOTH "if (must_free$argnum && (*$1)) SWIG_free(*$1);" +%typemap (freearg) char * "if (must_free$argnum) SWIG_free($1);"; +%typemap (freearg) char **INPUT, char **BOTH "if (must_free$argnum) SWIG_free(*$1);" %typemap (freearg) char **OUTPUT "SWIG_free(*$1);" /* But this shall not apply if we try to pass a single char by @@ -334,7 +334,7 @@ SIMPLE_MAP(unsigned long long, scm_to_ulong_long, scm_from_ulong_long, integer); /* If we set a string variable, delete the old result first, unless const. */ %typemap (varin) char * { - if ($1) free($1); + free($1); $1 = ($1_ltype) SWIG_scm2str($input); } diff --git a/Lib/lua/typemaps.i b/Lib/lua/typemaps.i index 8392e5bfa..a930b038f 100644 --- a/Lib/lua/typemaps.i +++ b/Lib/lua/typemaps.i @@ -192,10 +192,10 @@ int SWIG_read_NAME_num_array(lua_State* L,int index,TYPE *array,int size); There probably is some compiler that its not true for, so the code is left here just in case. #ifdef __cplusplus #define SWIG_ALLOC_ARRAY(TYPE,LEN) new TYPE[LEN] -#define SWIG_FREE_ARRAY(PTR) if(PTR){delete[] PTR;} +#define SWIG_FREE_ARRAY(PTR) delete[] PTR #else #define SWIG_ALLOC_ARRAY(TYPE,LEN) (TYPE *)malloc(LEN*sizeof(TYPE)) -#define SWIG_FREE_ARRAY(PTR) if(PTR){free(PTR);} +#define SWIG_FREE_ARRAY(PTR) free(PTR) #endif */ %{ diff --git a/Lib/scilab/scirun.swg b/Lib/scilab/scirun.swg index 51df9a59e..2e4084c15 100644 --- a/Lib/scilab/scirun.swg +++ b/Lib/scilab/scirun.swg @@ -47,10 +47,8 @@ static char *SWIG_Scilab_GetFuncName(void) { return SwigFuncName; } static void SWIG_Scilab_SetFuncName(char *funcName) { - if (SwigFuncName != NULL) { - free(SwigFuncName); - SwigFuncName = NULL; - } + free(SwigFuncName); + SwigFuncName = NULL; if (funcName) { SwigFuncName = (char *)malloc(strlen(funcName) + 1); if (SwigFuncName) diff --git a/Lib/typemaps/cpointer.swg b/Lib/typemaps/cpointer.swg index 94bbbd6bc..88e8ef242 100644 --- a/Lib/typemaps/cpointer.swg +++ b/Lib/typemaps/cpointer.swg @@ -55,7 +55,7 @@ typedef struct { return %new_instance(TYPE); } ~NAME() { - if ($self) %delete($self); + %delete($self); } } @@ -114,7 +114,7 @@ typedef struct { } static void delete_##NAME(TYPE *obj) { - if (obj) %delete(obj); + %delete(obj); } static void NAME ##_assign(TYPE *obj, TYPE value) { diff --git a/Source/Modules/javascript.cxx b/Source/Modules/javascript.cxx index 431dd4744..2d6535972 100644 --- a/Source/Modules/javascript.cxx +++ b/Source/Modules/javascript.cxx @@ -994,7 +994,7 @@ int JSEmitter::emitDtor(Node *n) { { SWIG_PRV_DATA* t = (SWIG_PRV_DATA*)JSObjectGetPrivate(thisObject); if(t && t->swigCMemOwn) free ((${type}*)t->swigCObject); - if(t) free(t); + free(t); } %} @@ -1007,7 +1007,7 @@ int JSEmitter::emitDtor(Node *n) { ${type}* arg1 = (${type}*)t->swigCObject; ${destructor_action} } - if(t) free(t); + free(t); Based on what I saw in the Lua and Ruby modules, I use Getattr(n, "wrap:action") to decide if the user has a preferred destructor action.