From 52e0b737bebed912091d68e0865da57cc1601381 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Janiszewski?= Date: Tue, 22 Sep 2015 22:45:03 +0200 Subject: [PATCH] Drop initial null check from SafeFree Both free and delete treat nullptr the same way: as a no-op [1][2]. Get rid of checking if the pointer passed is a null one before acting on it. See stackoverflow.com/q/154136/do-while-and-if-else-statements-in in case you are wondering why is it done this way. [1] http://www.cplusplus.com/reference/cstdlib/free/ [2] http://www.cplusplus.com/reference/new/operator%20delete/ --- src/common.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/common.h b/src/common.h index a965995ce0..b488f7c8e7 100644 --- a/src/common.h +++ b/src/common.h @@ -1,9 +1,9 @@ /***************************************************************************** * Copyright (c) 2014 Ted John * OpenRCT2, an open source clone of Roller Coaster Tycoon 2. - * + * * This file is part of OpenRCT2. - * + * * OpenRCT2 is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or @@ -17,21 +17,21 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . *****************************************************************************/ - + #ifndef _COMMON_H_ #define _COMMON_H_ #include "diagnostic.h" #include "rct2.h" -#define SafeFree(x) if ((x) != NULL) { free(x); (x) = NULL; } +#define SafeFree(x) do { free(x); (x) = NULL; } while (0) -#define SafeDelete(x) if ((x) != nullptr) { delete (x); (x) = nullptr; } -#define SafeDeleteArray(x) if ((x) != nullptr) { delete[] (x); (x) = nullptr; } +#define SafeDelete(x) do { delete (x); (x) = nullptr; } while (0) +#define SafeDeleteArray(x) do { delete[] (x); (x) = nullptr; } while (0) #ifndef interface #define interface struct #endif #define abstract = 0 -#endif \ No newline at end of file +#endif