From 0b48fb8bd7e28fa744045499218681991b8a2a19 Mon Sep 17 00:00:00 2001 From: Daniel Lemire Date: Tue, 11 Dec 2018 17:20:29 -0500 Subject: [PATCH] Removing memory leaks. --- Makefile | 5 +++++ benchmark/minifiercompetition.cpp | 4 ++-- tests/numberparsingcheck.cpp | 2 +- tools/json2json.cpp | 1 + tools/minify.cpp | 1 + 5 files changed, 10 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 26dbc56fe..b93f5f822 100644 --- a/Makefile +++ b/Makefile @@ -12,10 +12,15 @@ CFLAGS = -march=native -Idependencies/ujson4c/3rdparty -Idependencies/ujson4c/s ifeq ($(SANITIZE),1) CXXFLAGS += -g3 -O0 -fsanitize=address -fno-omit-frame-pointer -fsanitize=undefined CFLAGS += -g3 -O0 -fsanitize=address -fno-omit-frame-pointer -fsanitize=undefined +else +ifeq ($(DEBUG),1) + CXXFLAGS += -g3 -O0 + CFLAGS += -g3 -O0 else CXXFLAGS += -O3 CFLAGS += -O3 endif +endif MAINEXECUTABLES=parse minify json2json TESTEXECUTABLES=jsoncheck numberparsingcheck stringparsingcheck diff --git a/benchmark/minifiercompetition.cpp b/benchmark/minifiercompetition.cpp index ac9985f0d..15240ca31 100644 --- a/benchmark/minifiercompetition.cpp +++ b/benchmark/minifiercompetition.cpp @@ -78,7 +78,7 @@ int main(int argc, char *argv[]) { std::cout << p.size() << " B "; std::cout << std::endl; } - char *buffer = allocate_aligned_buffer(p.size() + 1); + char *buffer = allocate_padded_buffer(p.size() + 1); memcpy(buffer, p.data(), p.size()); buffer[p.size()] = '\0'; @@ -111,7 +111,7 @@ int main(int argc, char *argv[]) { BEST_TIME("RapidJSON Insitu orig", d.ParseInsitu(buffer).HasParseError(), false, memcpy(buffer, p.data(), p.size()), repeat, volume, true); - char *minibuffer = allocate_aligned_buffer(p.size() + 1); + char *minibuffer = allocate_padded_buffer(p.size() + 1); size_t minisize = jsonminify((const uint8_t *)p.data(), p.size(), (uint8_t*) minibuffer); minibuffer[minisize] = '\0'; diff --git a/tests/numberparsingcheck.cpp b/tests/numberparsingcheck.cpp index 37038a92b..48acfa210 100644 --- a/tests/numberparsingcheck.cpp +++ b/tests/numberparsingcheck.cpp @@ -154,7 +154,7 @@ bool validate(const char *dirname) { float_count, invalid_count, int_count + float_count + invalid_count); } - free(p.data()); + free((void*)p.data()); free(fullpath); } } diff --git a/tools/json2json.cpp b/tools/json2json.cpp index d8ceeda01..15d8e61ad 100644 --- a/tools/json2json.cpp +++ b/tools/json2json.cpp @@ -89,6 +89,7 @@ int main(int argc, char *argv[]) { return EXIT_FAILURE; } bool is_ok = json_parse(p, pj); // do the parsing, return false on error + free((void*)p.data()); if (!is_ok) { std::cerr << " Parsing failed. " << std::endl; return EXIT_FAILURE; diff --git a/tools/minify.cpp b/tools/minify.cpp index 5fd8b9a0b..86ab78481 100644 --- a/tools/minify.cpp +++ b/tools/minify.cpp @@ -18,4 +18,5 @@ int main(int argc, char *argv[]) { } jsonminify(p, (char *)p.data()); printf("%s",p.data()); + free((void*)p.data()); }