Explorar el Código

Allow MemSize(nil) to match FreeMem(nil).

Rika Ichinose hace 11 meses
padre
commit
ba7a76bf37
Se han modificado 2 ficheros con 4 adiciones y 0 borrados
  1. 2 0
      rtl/inc/heap.inc
  2. 2 0
      rtl/inc/heaptrc.pp

+ 2 - 0
rtl/inc/heap.inc

@@ -1303,6 +1303,8 @@ end;
 
 
 function SysMemSize(p: pointer): ptruint;
 function SysMemSize(p: pointer): ptruint;
 begin
 begin
+  if not assigned(p) then
+    exit(0);
   result := pmemchunk_fixed(pointer(p)-sizeof(tmemchunk_fixed_hdr))^.size;
   result := pmemchunk_fixed(pointer(p)-sizeof(tmemchunk_fixed_hdr))^.size;
   if (result and fixedsizeflag) = 0 then
   if (result and fixedsizeflag) = 0 then
     result := result and sizemask-sizeof(tmemchunk_var_hdr)
     result := result and sizemask-sizeof(tmemchunk_var_hdr)

+ 2 - 0
rtl/inc/heaptrc.pp

@@ -782,6 +782,8 @@ function TraceMemSize(p:pointer):ptruint;
 var
 var
   pp : pheap_mem_info;
   pp : pheap_mem_info;
 begin
 begin
+  if not assigned(p) then
+    exit(0);
   pp:=pheap_mem_info(p-sizeof(theap_mem_info));
   pp:=pheap_mem_info(p-sizeof(theap_mem_info));
   TraceMemSize:=pp^.size;
   TraceMemSize:=pp^.size;
 end;
 end;