فهرست منبع

* Free the Tree in SysDoneKeyboard to avoid a lot of messages if heaptrace is enabled

armin 22 سال پیش
والد
کامیت
b99d1fd23a
1فایلهای تغییر یافته به همراه28 افزوده شده و 1 حذف شده
  1. 28 1
      rtl/unix/keyboard.pp

+ 28 - 1
rtl/unix/keyboard.pp

@@ -401,6 +401,25 @@ type
 var
   RootTree : Array[0..255] of PTreeElement;
 
+procedure FreeElement (PT:PTreeElement);
+var next : PTreeElement;
+begin
+  while PT <> nil do
+  begin
+    FreeElement(PT^.Child);
+    next := PT^.Next;
+    dispose(PT);
+    PT := next;
+  end;
+end;
+
+procedure FreeTree;
+var i : integer;
+begin
+  for i := low(RootTree) to high(RootTree) do
+    FreeElement(RootTree[i]);
+end;
+
 function NewPTree(ch : byte;Pa : PTreeElement) : PTreeElement;
 var PT : PTreeElement;
 begin
@@ -1267,6 +1286,11 @@ procedure SysDoneKeyboard;
 begin
   unpatchkeyboard;
   SetRawMode(false);
+
+{$ifndef NotUseTree}
+  FreeTree;
+{$endif not NotUseTree}
+
 {$ifdef logging}
   close(f);
 {$endif logging}
@@ -1505,7 +1529,10 @@ begin
 end.
 {
   $Log$
-  Revision 1.11  2002-09-07 16:01:27  peter
+  Revision 1.12  2003-03-26 12:35:23  armin
+  * Free the Tree in SysDoneKeyboard to avoid a lot of messages if heaptrace is enabled
+
+  Revision 1.11  2002/09/07 16:01:27  peter
     * old logs removed and tabs fixed
 
   Revision 1.10  2002/03/03 13:23:51  peter