Browse Source

* freemem,reallocmem now get var argument

peter 26 years ago
parent
commit
6a10b2661b
3 changed files with 30 additions and 21 deletions
  1. 11 8
      rtl/inc/heap.inc
  2. 12 9
      rtl/inc/heaph.inc
  3. 7 4
      rtl/inc/heaptrc.pp

+ 11 - 8
rtl/inc/heap.inc

@@ -145,10 +145,9 @@ end;
 
 
 { Delphi style }
-function FreeMem(p:pointer):Longint;
+function FreeMem(var p:pointer):Longint;
 begin
-  if p <> nil then
-    Freemem:=MemoryManager.FreeMem(p);
+  Freemem:=MemoryManager.FreeMem(p);
 end;
 
 
@@ -164,7 +163,7 @@ begin
 end;
 
 
-function ReAllocMem(p:pointer;Size:Longint):pointer;
+function ReAllocMem(var p:pointer;Size:Longint):pointer;
 begin
   ReAllocMem:=MemoryManager.ReAllocMem(p,size);
 end;
@@ -427,7 +426,7 @@ end;
                                SysFreeMem
 *****************************************************************************}
 
-Function SysFreeMem(p : pointer):Longint;
+Function SysFreeMem(var p : pointer):Longint;
 var
   s : longint;
   pcurr : pfreerecord;
@@ -447,6 +446,7 @@ begin
   if assigned(pcurr^.next) then
    pcurr^.next^.prev:=pcurr;
   freelists[s]:=pcurr;
+  p:=nil;
   SysFreeMem:=pcurr^.size;
 end;
 
@@ -455,7 +455,7 @@ end;
                               SysFreeMemSize
 *****************************************************************************}
 
-Function SysFreeMemSize(p : pointer;size : longint):longint;
+Function SysFreeMemSize(var p : pointer;size : longint):longint;
 var
   s : longint;
   pcurr : pfreerecord;
@@ -518,7 +518,7 @@ end;
                                  SysReAllocMem
 *****************************************************************************}
 
-function SysReAllocMem(p:pointer;size : longint):pointer;
+function SysReAllocMem(var p:pointer;size : longint):pointer;
 var
   currsize,
   foundsize,
@@ -750,7 +750,10 @@ end;
 
 {
   $Log$
-  Revision 1.21  1999-10-30 17:39:05  peter
+  Revision 1.22  1999-11-01 13:56:50  peter
+    * freemem,reallocmem now get var argument
+
+  Revision 1.21  1999/10/30 17:39:05  peter
     * memorymanager expanded with allocmem/reallocmem
 
   Revision 1.20  1999/10/22 22:03:07  sg

+ 12 - 9
rtl/inc/heaph.inc

@@ -19,10 +19,10 @@ type
   PMemoryManager = ^TMemoryManager;
   TMemoryManager = record
     Getmem      : Function(Size:Longint):Pointer;
-    Freemem     : Function(p:pointer):Longint;
-    FreememSize : Function(p:pointer;Size:Longint):Longint;
+    Freemem     : Function(var p:pointer):Longint;
+    FreememSize : Function(var p:pointer;Size:Longint):Longint;
     AllocMem    : Function(Size:longint):Pointer;
-    ReAllocMem  : Function(p:pointer;Size:longint):Pointer;
+    ReAllocMem  : Function(var p:pointer;Size:longint):Pointer;
     MemSize     : function(p:pointer):Longint;
     MemAvail    : Function:Longint;
     MaxAvail    : Function:Longint;
@@ -41,11 +41,11 @@ var
 
 { Default MemoryManager functions }
 Function  SysGetmem(Size:Longint):Pointer;
-Function  SysFreemem(p:pointer):Longint;
-Function  SysFreememSize(p:pointer;Size:Longint):Longint;
+Function  SysFreemem(var p:pointer):Longint;
+Function  SysFreememSize(var p:pointer;Size:Longint):Longint;
 Function  SysMemSize(p:pointer):Longint;
 Function  SysAllocMem(size:longint):Pointer;
-Function  SysReAllocMem(p:pointer;size:longint):Pointer;
+Function  SysReAllocMem(var p:pointer;size:longint):Pointer;
 Function  Sysmemavail:Longint;
 Function  Sysmaxavail:Longint;
 Function  Sysheapsize:longint;
@@ -61,10 +61,10 @@ Function  MemSize(p:pointer):Longint;
 Function  heapsize:longint;
 
 { Delphi functions }
-function Freemem(p:pointer):longint;
 function GetMem(size:longint):pointer;
+function Freemem(var p:pointer):longint;
 function AllocMem(Size:Longint):pointer;
-function ReAllocMem(p:pointer;Size:Longint):pointer;
+function ReAllocMem(var p:pointer;Size:Longint):pointer;
 
 { Needed to solve overloading problem with call from assembler (PFV) }
 Procedure AsmGetmem(var p:pointer;size:Longint);
@@ -76,7 +76,10 @@ Procedure release(var p : pointer);
 
 {
   $Log$
-  Revision 1.11  1999-10-30 17:39:05  peter
+  Revision 1.12  1999-11-01 13:56:50  peter
+    * freemem,reallocmem now get var argument
+
+  Revision 1.11  1999/10/30 17:39:05  peter
     * memorymanager expanded with allocmem/reallocmem
 
   Revision 1.10  1999/09/17 17:14:12  peter

+ 7 - 4
rtl/inc/heaptrc.pp

@@ -386,7 +386,7 @@ end;
                                TraceFreeMem
 *****************************************************************************}
 
-function TraceFreeMemSize(p:pointer;size:longint):longint;
+function TraceFreeMemSize(var p:pointer;size:longint):longint;
 var
   i,bp, ppsize : longint;
   pp : pheap_mem_info;
@@ -508,7 +508,7 @@ begin
 end;
 
 
-function TraceFreeMem(p:pointer):longint;
+function TraceFreeMem(var p:pointer):longint;
 var
   size : longint;
   pp : pheap_mem_info;
@@ -725,7 +725,7 @@ end;
                                 ReAllocMem
 *****************************************************************************}
 
-function TraceReAllocMem(p:pointer;size:longint):Pointer;
+function TraceReAllocMem(var p:pointer;size:longint):Pointer;
 var
   i,bp : longint;
   pl : plongint;
@@ -897,7 +897,10 @@ finalization
 end.
 {
   $Log$
-  Revision 1.25  1999-10-30 17:39:05  peter
+  Revision 1.26  1999-11-01 13:56:50  peter
+    * freemem,reallocmem now get var argument
+
+  Revision 1.25  1999/10/30 17:39:05  peter
     * memorymanager expanded with allocmem/reallocmem
 
   Revision 1.24  1999/09/17 17:14:12  peter