Quellcode durchsuchen

+ implemented Mark and Release for the tiny heap

git-svn-id: trunk@28700 -
nickysn vor 11 Jahren
Ursprung
Commit
4e48190342
2 geänderte Dateien mit 13 neuen und 1 gelöschten Zeilen
  1. 11 0
      rtl/inc/tinyheap.inc
  2. 2 1
      rtl/inc/tnyheaph.inc

+ 11 - 0
rtl/inc/tinyheap.inc

@@ -319,6 +319,17 @@
           Dec(MaxAvail, SizeOf(TTinyHeapMemBlockSize));
           Dec(MaxAvail, SizeOf(TTinyHeapMemBlockSize));
       end;
       end;
 
 
+    procedure Mark(var p: Pointer);
+      begin
+        p := HeapPtr;
+      end;
+
+    procedure Release(var p: Pointer);
+      begin
+        HeapPtr := p;
+        FreeList := p;
+      end;
+
     procedure InternalTinyAlign(var AAddress: Pointer; ASize: PtrUInt);
     procedure InternalTinyAlign(var AAddress: Pointer; ASize: PtrUInt);
       var
       var
         alignment_inc: smallint;
         alignment_inc: smallint;

+ 2 - 1
rtl/inc/tnyheaph.inc

@@ -28,4 +28,5 @@
 
 
     function MemAvail: {$ifdef FPC_TINYHEAP_HUGE}LongInt{$else}PtrUInt{$endif};
     function MemAvail: {$ifdef FPC_TINYHEAP_HUGE}LongInt{$else}PtrUInt{$endif};
     function MaxAvail: {$ifdef FPC_TINYHEAP_HUGE}LongInt{$else}PtrUInt{$endif};
     function MaxAvail: {$ifdef FPC_TINYHEAP_HUGE}LongInt{$else}PtrUInt{$endif};
-
+    procedure Mark(var p: Pointer);
+    procedure Release(var p: Pointer);