From 8b5370313dcc00a45ea5c3e8b4c497bc00fd8e13 Mon Sep 17 00:00:00 2001 From: Ben Longbons Date: Tue, 11 Jun 2013 21:55:13 -0700 Subject: Allegedly remove all manual memory management --- src/poison.hpp | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 55 insertions(+), 2 deletions(-) (limited to 'src/poison.hpp') diff --git a/src/poison.hpp b/src/poison.hpp index d196bc6..46e6d65 100644 --- a/src/poison.hpp +++ b/src/poison.hpp @@ -5,7 +5,6 @@ // TODO fill in as they are removed from source code: // double (use a fixed class) #pragma GCC poison float -// mem* and str* from , in favor of // Local time is forbidden. #pragma GCC poison timelocal // timegm @@ -15,11 +14,65 @@ #pragma GCC poison time // TimeT::now() or gettick() +// Avoid manual allocations. // Use some sort of managed container, or at least dumb_ptr -#if 0 + +// new is needed when resetting unique_ptr. +// No it isn't. It doesn't matter if it's a little more verbose; it's cleaner. +//#define really_new1 new +// delete is needed for unique_ptr's deleter. +#define really_delete1 delete + +#pragma GCC poison new +#pragma GCC poison delete + #pragma GCC poison malloc #pragma GCC poison calloc #pragma GCC poison realloc #pragma GCC poison free + #pragma GCC poison strdup +#pragma GCC poison strndup + +// complete list of glibc whose results may need to be free()d +// not believed to be used +#pragma GCC poison posix_memalign +#pragma GCC poison aligned_alloc +#pragma GCC poison memalign +#pragma GCC poison valloc +#pragma GCC poison pvalloc + +#pragma GCC poison asprintf +#pragma GCC poison vasprintf + +#pragma GCC poison canonicalize_file_name + +#pragma GCC poison cfree + +#pragma GCC poison open_memstream +#pragma GCC poison open_wmemstream + +// *scanf %ms is done very carefully. +//#pragma GCC poison scanf +//#pragma GCC poison fscanf +//#pragma GCC poison sscanf +//#pragma GCC poison vscanf +//#pragma GCC poison vsscanf +//#pragma GCC poison vfscanf + +#pragma GCC poison getcwd +#pragma GCC poison get_current_dir_name + +#pragma GCC poison malloc_get_state + +#pragma GCC poison realpath + +#pragma GCC poison tempnam + +#pragma GCC poison wcsdup + +#if 0 +#pragma GCC poison memcpy +#pragma GCC poison memmove +#pragma GCC poison memset #endif -- cgit v1.2.3-60-g2f50