]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Bug fix in the realloc algorithm of the static memory allocator. (CVS 4497)
authordrh <drh@noemail.net>
Sat, 20 Oct 2007 16:11:39 +0000 (16:11 +0000)
committerdrh <drh@noemail.net>
Sat, 20 Oct 2007 16:11:39 +0000 (16:11 +0000)
FossilOrigin-Name: 50db16be5025f6d5efc51e3354615059da7e8611

manifest
manifest.uuid
src/mem3.c

index 22508c9aa456f50baf01657988ebd2b2ab5253d4..65fa40dfaa99bed02f721ba2b95301e8d0826527 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Simplify\sthe\smem3.c\smemory\sallocator.\s\sHave\sit\scall\ssqlite3_release_memory()\nautomatically,\swithout\shaving\sto\sspecify\sthe\ssoft\sheap\slimit.\s(CVS\s4496)
-D 2007-10-20T15:41:58
+C Bug\sfix\sin\sthe\srealloc\salgorithm\sof\sthe\sstatic\smemory\sallocator.\s(CVS\s4497)
+D 2007-10-20T16:11:39
 F Makefile.in 30c7e3ba426ddb253b8ef037d1873425da6009a8
 F Makefile.linux-gcc 65241babba6faf1152bf86574477baab19190499
 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@@ -104,7 +104,7 @@ F src/malloc.c de4e77fe70a9a0ac47a1c3a874422b107231bf31
 F src/md5.c c5fdfa5c2593eaee2e32a5ce6c6927c986eaf217
 F src/mem1.c cacb202bc379da10d69aa66d497c0ea7bd9cd8a5
 F src/mem2.c 3f669b5e20975a5a2ca392aca891cd686e22b097
-F src/mem3.c 0a86f5a93f8adf8604c0f346e2e99d7f01494cae
+F src/mem3.c 232f658b5919a979e894817e8d9a8047cc01738a
 F src/mutex.c 3259f62c2429967aee6dc112117a6d2f499ef061
 F src/mutex.h 079fa6fe9da18ceb89e79012c010594c6672addb
 F src/mutex_os2.c 7fe4773e98ed74a63b2e54fc557929eb155f6269
@@ -582,7 +582,7 @@ F www/tclsqlite.tcl 8be95ee6dba05eabcd27a9d91331c803f2ce2130
 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
 F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
 F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
-P f56c9884be796dee3f267aca6021eb1846d8527c
-R 99add766d4a1a5f07507dd355d51b89c
+P ca51b2f54076fcf73a8857aecf4b45d66ef0c7b6
+R 149041cc2a0cdac1aeaffd2ccb597c27
 U drh
-Z 2b02a1a666d477f557917b5280cb451c
+Z c7cecaa706d7ed7726d405d4a3f2983e
index b800c593cee4473b12a357ddda12fd513bd435c0..f8b380543bae76a4f9ab58d2dbf7b72ff9c198be 100644 (file)
@@ -1 +1 @@
-ca51b2f54076fcf73a8857aecf4b45d66ef0c7b6
\ No newline at end of file
+50db16be5025f6d5efc51e3354615059da7e8611
\ No newline at end of file
index 52663e5748f5213619db14dc05b386ea306b20cd..4b6fcf6c61e9702b6b39a27d6c53267992bc63a1 100644 (file)
@@ -20,7 +20,7 @@
 ** This version of the memory allocation subsystem is used if
 ** and only if SQLITE_MEMORY_SIZE is defined.
 **
-** $Id: mem3.c,v 1.3 2007/10/20 15:41:58 drh Exp $
+** $Id: mem3.c,v 1.4 2007/10/20 16:11:39 drh Exp $
 */
 
 /*
@@ -274,7 +274,7 @@ static void memsys3OutOfMemory(int nByte){
 static int memsys3Size(void *p){
   Mem3Block *pBlock = (Mem3Block*)p;
   assert( pBlock[-1].u.hdr.size<0 );
-  return (1-pBlock[-1].u.hdr.size)*8;
+  return (-1-pBlock[-1].u.hdr.size)*8;
 }
 
 /*
@@ -517,11 +517,9 @@ void *sqlite3_realloc(void *pPrior, int nBytes){
   }
   assert( mem.mutex!=0 );
   nOld = memsys3Size(pPrior);
-#if 0
   if( nBytes<=nOld && nBytes>=nOld-128 ){
     return pPrior;
   }
-#endif
   sqlite3_mutex_enter(mem.mutex);
   p = memsys3Malloc(nBytes);
   if( p ){