Check if the override declaration is visible to the body.
[mono.git] / mono / metadata / mempool-internals.h
index a32da329cd132291df4f7900150f282d67e16fa6..a317a669b9c63f6470fc2239fcfa4713625119e5 100755 (executable)
@@ -4,13 +4,60 @@
 #include <glib.h>
 
 #include "mono/utils/mono-compiler.h"
+#include "mono/metadata/mempool.h"
 
-GSList*
-g_slist_prepend_mempool (MonoMemPool *mp, GSList *list, gpointer data) MONO_INTERNAL;
-GSList*
-g_slist_append_mempool (MonoMemPool *mp, GSList *list, gpointer data) MONO_INTERNAL;
+static inline GList*
+g_list_prepend_mempool (MonoMemPool *mp, GList *list, gpointer data)
+{
+       GList *new_list;
+       
+       new_list = mono_mempool_alloc (mp, sizeof (GList));
+       new_list->data = data;
+       new_list->prev = list ? list->prev : NULL;
+    new_list->next = list;
 
-GList*
-g_list_prepend_mempool (MonoMemPool *mp, GList *list, gpointer data) MONO_INTERNAL;
+    if (new_list->prev)
+            new_list->prev->next = new_list;
+    if (list)
+            list->prev = new_list;
+
+       return new_list;
+}
+
+static inline GSList*
+g_slist_prepend_mempool (MonoMemPool *mp, GSList *list, gpointer  data)
+{
+       GSList *new_list;
+       
+       new_list = mono_mempool_alloc (mp, sizeof (GSList));
+       new_list->data = data;
+       new_list->next = list;
+
+       return new_list;
+}
+
+static inline GSList*
+g_slist_append_mempool (MonoMemPool *mp, GSList *list, gpointer data)
+{
+       GSList *new_list;
+       GSList *last;
+
+       new_list = mono_mempool_alloc (mp, sizeof (GSList));
+       new_list->data = data;
+       new_list->next = NULL;
+
+       if (list) {
+               last = list;
+               while (last->next)
+                       last = last->next;
+               last->next = new_list;
+
+               return list;
+       } else
+               return new_list;
+}
+
+long
+mono_mempool_get_bytes_allocated (void) MONO_INTERNAL;
 
 #endif