Remove redundant NULL checks before free()/delete (#2184)

Remove redundant NULL checks before free()/delete

The ISO C and C++ standards guarantee that it's safe to call these
on a NULL pointer, so it's not necessary for the calling code to
also check.

Fixes https://sourceforge.net/p/swig/feature-requests/70/
This commit is contained in:
Olly Betts 2022-01-29 22:03:48 +13:00 committed by GitHub
commit 7ec2f89fe2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 44 additions and 51 deletions

View file

@ -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);
}
</swigxml:code>

View file

@ -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);
}
</swigxml:code>