Просмотр исходного кода

+ implemented Mark and Release for the tiny heap

git-svn-id: trunk@28700 -
nickysn 11 лет назад
Родитель
Сommit
4e48190342
2 измененных файлов с 13 добавлено и 1 удалено
  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));
       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);
       var
         alignment_inc: smallint;

+ 2 - 1
rtl/inc/tnyheaph.inc

@@ -28,4 +28,5 @@
 
     function MemAvail: {$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);