Browse Source

* fix location of size field within memchunk variations, fixes MemSize

git-svn-id: branches/fixes_2_0@5202 -
micha 19 years ago
parent
commit
7c99b322de
1 changed files with 5 additions and 3 deletions
  1. 5 3
      rtl/inc/heap.inc

+ 5 - 3
rtl/inc/heap.inc

@@ -92,18 +92,20 @@ type
 {$endif CPU64}
 {$endif CPU64}
   end;
   end;
 
 
+  { make sure size field is in the same position for every memchunk variant }
+
   pmemchunk_fixed  = ^tmemchunk_fixed;
   pmemchunk_fixed  = ^tmemchunk_fixed;
   tmemchunk_fixed = record
   tmemchunk_fixed = record
-    size   : ptrint;
     poc    : poschunk;
     poc    : poschunk;
+    size   : ptrint;
     next_fixed,
     next_fixed,
     prev_fixed : pmemchunk_fixed;
     prev_fixed : pmemchunk_fixed;
   end;
   end;
 
 
   pmemchunk_var  = ^tmemchunk_var;
   pmemchunk_var  = ^tmemchunk_var;
   tmemchunk_var = record
   tmemchunk_var = record
-    size     : ptrint;
     prevsize : ptrint;
     prevsize : ptrint;
+    size     : ptrint;
     next_var,
     next_var,
     prev_var  : pmemchunk_var;
     prev_var  : pmemchunk_var;
   end;
   end;
@@ -115,8 +117,8 @@ type
     Alignment is 8 bytes for 32bit machines. This required
     Alignment is 8 bytes for 32bit machines. This required
     for x86 MMX/SSE and for sparc Double values }
     for x86 MMX/SSE and for sparc Double values }
   tmemchunk_fixed_hdr = record
   tmemchunk_fixed_hdr = record
+    poc      : poschunk;
     size     : ptrint;
     size     : ptrint;
-    poschunk : pointer;
   end;
   end;
   tmemchunk_var_hdr = record
   tmemchunk_var_hdr = record
     prevsize,
     prevsize,