From cb1ca2da72952b095d3240f5d706079e3cb75072 Mon Sep 17 00:00:00 2001 From: Kp Date: Sat, 5 Jul 2014 16:58:47 +0000 Subject: [PATCH] Reduce reallocations reading configuration --- similar/main/config.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/similar/main/config.cpp b/similar/main/config.cpp index 1ab088a45..1a8391923 100644 --- a/similar/main/config.cpp +++ b/similar/main/config.cpp @@ -24,6 +24,7 @@ COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. * */ +#include #include #include #include @@ -141,12 +142,10 @@ int ReadConfigFile() return 1; } - while (!PHYSFS_eof(infile)) + std::size_t max_len = PHYSFS_fileLength(infile) + 1; // to be fully safe, assume the whole cfg consists of one big line + for (std::unique_ptr line(new char[max_len]); !PHYSFS_eof(infile);) { - int max_len = PHYSFS_fileLength(infile); // to be fully safe, assume the whole cfg consists of one big line - RAIIdmem line; - CALLOC(line, char, max_len); - PHYSFSX_fgets(line,max_len,infile); + PHYSFSX_fgets(line.get(), max_len, infile); ptr = &(line[0]); while (isspace(*ptr)) ptr++;