X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8e08b761b0c5ecb6df295785b78f1f3637331887..5e6880e647304446f3b2d0fd268dfa9646caa9e0:/contrib/include/wx/fl/garbagec.h?ds=inline

diff --git a/contrib/include/wx/fl/garbagec.h b/contrib/include/wx/fl/garbagec.h
index d710e9f7a3..5e3da01ef7 100644
--- a/contrib/include/wx/fl/garbagec.h
+++ b/contrib/include/wx/fl/garbagec.h
@@ -1,73 +1,92 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        No names yet.
-// Purpose:     Contrib. demo
+// Name:        garbagec.h
+// Purpose:     GarbageCollector class.
 // Author:      Aleksandras Gluchovas (@Lithuania)
 // Modified by:
 // Created:     ??/10/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Aleksandras Gluchovas
-// Licence:   	wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef __GARBAGEC_G__
 #define __GARBAGEC_G__
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(__APPLE__)
     #pragma interface "garbagec.h"
 #endif
 
 #include "wx/list.h"
+#include "wx/fl/fldefs.h"
 
 struct GCItem
 {
-	void*	  mpObj;
-	wxList    mRefs;   // references to other nodes
+    void*      mpObj;
+    wxList    mRefs;   // references to other nodes
 };
 
-inline void* gc_node_to_obj( wxNode* pGCNode )
+inline void* gc_node_to_obj( wxObjectList::compatibility_iterator pGCNode )
 {
-	return ( (GCItem*) (pGCNode->Data()) )->mpObj;
+    return ( (GCItem*) (pGCNode->GetData()) )->mpObj;
 }
 
-// class implements extremely slow, but probably one of the most simple GC algorithms
+/*
+This class implements an extremely slow but simple garbage collection algorithm.
+*/
 
-class GarbageCollector
+class WXDLLIMPEXP_FL GarbageCollector
 {
 protected:
-	wxList mAllNodes;
-	wxList mRegularLst;
-	wxList mCycledLst;
+    wxList mAllNodes;
+    wxList mRegularLst;
+    wxList mCycledLst;
 
-	wxNode* FindItemNode( void* pForObj );
-	void    ResolveReferences();
+        // Internal method for finding a node.
+    wxNode* FindItemNode( void* pForObj );
 
-	wxNode* FindReferenceFreeItemNode();
-	void    RemoveReferencesToNode( wxNode* pItemNode );
-	void    DestroyItemList( wxList& lst );
+        // Internal method for resolving references.
+    void    ResolveReferences();
+
+        // Internal method for findind and freeing a node.
+    wxNode* FindReferenceFreeItemNode();
+
+        // Remove references to this node.
+    void    RemoveReferencesToNode( wxNode* pItemNode );
+
+        // Destroys a list of items.
+    void    DestroyItemList( wxList& lst );
 
 public:
 
-	GarbageCollector() {}
+        // Default constructor.
+    GarbageCollector() {}
+
+        // Destructor.
+    virtual ~GarbageCollector();
+
+        // Prepare data for garbage collection.
+
+    virtual void AddObject( void* pObj, int refCnt = 1 );
+
+        // Prepare data for garbage collection.
 
-	virtual ~GarbageCollector();
+    virtual void AddDependency( void* pObj, void* pDependsOnObj );
 
-	// prepare data for GC alg.
+        // Executes garbage collection algorithm.
 
-	virtual void AddObject( void* pObj, int refCnt = 1 );
-	virtual void AddDependency( void* pObj, void* pDependsOnObj );
+    virtual void ArrangeCollection();
 
-	// executes GC alg.
+        // Accesses the results of the algorithm.
 
-	virtual void ArrangeCollection();
+    wxList& GetRegularObjects();
 
-	// access results of the alg.
+        // Get cycled objects.
 
-	wxList& GetRegularObjects();
-	wxList& GetCycledObjects();
+    wxList& GetCycledObjects();
 
-	// removes all data from GC
+        // Removes all data from the garbage collector.
 
-	void Reset();
+    void Reset();
 };
 
 #endif /* __GARBAGEC_G__ */