From 2fce43d484e4148ae858f410d51dcd9951d34374 Mon Sep 17 00:00:00 2001
From: Tuowen Zhao <ztuowen@gmail.com>
Date: Sun, 18 Sep 2016 15:45:13 +0000
Subject: remove include & rename

---
 omegalib/omega/src/basic/Link.cc | 41 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)
 create mode 100644 omegalib/omega/src/basic/Link.cc

(limited to 'omegalib/omega/src/basic/Link.cc')

diff --git a/omegalib/omega/src/basic/Link.cc b/omegalib/omega/src/basic/Link.cc
new file mode 100644
index 0000000..50b9441
--- /dev/null
+++ b/omegalib/omega/src/basic/Link.cc
@@ -0,0 +1,41 @@
+#include <basic/Link.h>
+
+namespace omega {
+
+#if ListElementFreeList
+  static List_Element<void*> *_kludgy_List_Element_free_list_pointer;
+// we rely on the fact that that is initialized to 0 before any
+// constructor-based initialization that could call List_Element::new.
+
+  void *kludgy_List_Element_new(size_t size)
+    {
+    void *mem;
+    if (size == sizeof(List_Element<void*>) &&
+	_kludgy_List_Element_free_list_pointer)
+	{
+	List_Element<void*> *it = _kludgy_List_Element_free_list_pointer;
+	_kludgy_List_Element_free_list_pointer = it->tail;
+	mem = it;
+	}
+    else
+	mem = ::operator new(size);
+
+    return mem;
+    }
+
+  void  kludgy_List_Element_delete(void *ptr, size_t size)
+    {
+    if (ptr)
+	if (size == sizeof(List_Element<void*>))
+	    {
+	    List_Element<void*> *it = (List_Element<void*> *) ptr;
+	    it->tail = _kludgy_List_Element_free_list_pointer;
+	    _kludgy_List_Element_free_list_pointer = it;
+	    }
+	else
+	    ::operator delete(ptr);
+    }
+
+#endif
+
+} // namespace
-- 
cgit v1.2.3-70-g09d2