Menu

Diff of /trunk/src/SerializeUtils.cpp [r181] .. [r182]  Maximize  Restore

Switch to side-by-side view

--- a/trunk/src/SerializeUtils.cpp
+++ b/trunk/src/SerializeUtils.cpp
@@ -2,9 +2,7 @@
 #include "SerializeUtils.h"
 #include <assert.h>
 
-
-char * CSerializeUtils::buffer = NULL;
-size_t CSerializeUtils::lenbuffer = 0;
+char CSerializeUtils::buffer[4096] = {0};
 
 CSerializeUtils::CSerializeUtils(void)
 {
@@ -12,19 +10,6 @@
 
 CSerializeUtils::~CSerializeUtils(void)
 {
-}
-
-void CSerializeUtils::InitializeStatic()
-{
-    buffer = new char[1024];
-    lenbuffer = 1024;
-}
-
-void CSerializeUtils::CleanupStatic()
-{
-    if (buffer)
-        delete [] buffer;
-    lenbuffer = 0;
 }
 
 bool CSerializeUtils::SaveNumber(FILE * hFile, unsigned __int64 value)
@@ -90,17 +75,22 @@
 				{
                     if (length)
                     {
-                        if (length > lenbuffer)
+                        if (length < 4096)
                         {
-                            delete [] buffer;
-                            buffer = new char[length];
-                            lenbuffer = length;
+                            if (fread(buffer, sizeof(char), length, hFile))
+                            {
+                                str = string(buffer, length);
+                                return true;
+                            }
                         }
-                        if (fread(buffer, sizeof(char), length, hFile))
+                        char * pBuffer = new char[length];
+                        if (fread(pBuffer, sizeof(char), length, hFile))
                         {
-                            str = string(buffer, length);
+                            str = string(pBuffer, length);
+                            delete [] pBuffer;
                             return true;
                         }
+                        delete [] pBuffer;
                     }
                     else
                     {