summaryrefslogtreecommitdiff
path: root/registryd/reentrant-list.c
diff options
context:
space:
mode:
authorMark Doffman <mdoff@silver-wind.(none)>2008-10-11 15:51:00 +0100
committerMark Doffman <mdoff@silver-wind.(none)>2008-10-11 15:51:00 +0100
commit497722b006e292663865c2e830373badb0622f58 (patch)
tree0e96f724441d61ebcbfaa64574f7e1f00c28e2ba /registryd/reentrant-list.c
parent12e15a3d287135b30e46446ee81b77e48d8d840d (diff)
downloadat-spi2-core-497722b006e292663865c2e830373badb0622f58.tar.gz
2008-10-11 Mark Doffman <mark.doffman@codethink.co.uk>
* registryd/* Add an icomplete NON WORKING implementation of application registration as specified in xml/org.freedesktop.atspi.Registry.xml xml/org.freedesktop.atspi.Tree.xml
Diffstat (limited to 'registryd/reentrant-list.c')
-rw-r--r--registryd/reentrant-list.c104
1 files changed, 0 insertions, 104 deletions
diff --git a/registryd/reentrant-list.c b/registryd/reentrant-list.c
deleted file mode 100644
index 6e9911ed..00000000
--- a/registryd/reentrant-list.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 Ximian, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include <config.h>
-#include <glib.h>
-
-#include "reentrant-list.h"
-
-typedef struct {
- GList **list;
- GList *iterator;
-} Iteration;
-
-static GSList *working_list = NULL; /* of Iteration */
-
-/*
- * deletes an element from the list - in a re-entrant
- * safe fashion; advances the element pointer to the next
- * element.
- */
-void
-spi_re_entrant_list_delete_link (GList * const *element_ptr)
-{
- GSList *l;
- GList *next;
- GList *element;
- gboolean first_item;
-
- g_return_if_fail (element_ptr != NULL);
-
- element = *element_ptr;
- g_return_if_fail (element != NULL);
-
- next = element->next;
- first_item = (element->prev == NULL);
-
- g_list_remove_link (NULL, element);
-
- for (l = working_list; l; l = l->next)
- {
- Iteration *i = l->data;
-
- if (i->iterator == element)
- {
- i->iterator = next;
- }
-
- if (first_item && *(i->list) == element)
- {
- *(i->list) = next;
- }
- }
-
- g_list_free_1 (element);
-}
-
-void
-spi_re_entrant_list_foreach (GList **list,
- SpiReEntrantFn func,
- gpointer user_data)
-{
- Iteration i;
-
- if (!list || !*list)
- {
- return;
- }
-
- i.list = list;
- i.iterator = *list;
-
- working_list = g_slist_prepend (working_list, &i);
-
- while (i.iterator) {
- GList *l = i.iterator;
-
- func (&i.iterator, user_data);
-
- if (i.iterator == l)
- i.iterator = i.iterator->next;
- }
-
- working_list = g_slist_remove (working_list, &i);
-}