]> oss.titaniummirror.com Git - msp430-gcc.git/blobdiff - libobjc/objc/objc-list.h
Imported gcc-4.4.3
[msp430-gcc.git] / libobjc / objc / objc-list.h
diff --git a/libobjc/objc/objc-list.h b/libobjc/objc/objc-list.h
deleted file mode 100644 (file)
index de083a5..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-/* Generic single linked list to keep various information 
-   Copyright (C) 1993, 1994, 1996 Free Software Foundation, Inc.
-   Contributed by Kresten Krab Thorup.
-
-This file is part of GNU CC.
-
-GNU CC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU CC 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 General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING.  If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
-
-/* As a special exception, if you link this library with files compiled with
-   GCC to produce an executable, this does not cause the resulting executable
-   to be covered by the GNU General Public License. This exception does not
-   however invalidate any other reasons why the executable file might be
-   covered by the GNU General Public License.  */
-
-#ifndef __GNU_OBJC_LIST_H
-#define __GNU_OBJC_LIST_H
-
-struct objc_list {
-  void *head;
-  struct objc_list *tail;
-};
-
-/* Return a cons cell produced from (head . tail) */
-
-static inline struct objc_list* 
-list_cons(void* head, struct objc_list* tail)
-{
-  struct objc_list* cell;
-
-  cell = (struct objc_list*)objc_malloc(sizeof(struct objc_list));
-  cell->head = head;
-  cell->tail = tail;
-  return cell;
-}
-
-/* Return the length of a list, list_length(NULL) returns zero */
-
-static inline int
-list_length(struct objc_list* list)
-{
-  int i = 0;
-  while(list)
-    {
-      i += 1;
-      list = list->tail;
-    }
-  return i;
-}
-
-/* Return the Nth element of LIST, where N count from zero.  If N 
-   larger than the list length, NULL is returned  */
-
-static inline void*
-list_nth(int index, struct objc_list* list)
-{
-  while(index-- != 0)
-    {
-      if(list->tail)
-       list = list->tail;
-      else
-       return 0;
-    }
-  return list->head;
-}
-
-/* Remove the element at the head by replacing it by its successor */
-
-static inline void
-list_remove_head(struct objc_list** list)
-{
-  if ((*list)->tail)
-    {
-      struct objc_list* tail = (*list)->tail; /* fetch next */
-      *(*list) = *tail;                /* copy next to list head */
-      objc_free(tail);                 /* free next */
-    }
-  else                         /* only one element in list */
-    {
-      objc_free(*list);
-      (*list) = 0;
-    }
-}
-
-
-/* Remove the element with `car' set to ELEMENT */
-
-static inline void
-list_remove_elem(struct objc_list** list, void* elem)
-{
-  while (*list) {
-    if ((*list)->head == elem)
-      list_remove_head(list);
-    list = &((*list)->tail);
-  }
-}
-
-/* Map FUNCTION over all elements in LIST */
-
-static inline void
-list_mapcar(struct objc_list* list, void(*function)(void*))
-{
-  while(list)
-    {
-      (*function)(list->head);
-      list = list->tail;
-    }
-}
-
-/* Return element that has ELEM as car */
-
-static inline struct objc_list**
-list_find(struct objc_list** list, void* elem)
-{
-  while(*list)
-    {
-    if ((*list)->head == elem)
-      return list;
-    list = &((*list)->tail);
-    }
-  return NULL;
-}
-
-/* Free list (backwards recursive) */
-
-static void
-list_free(struct objc_list* list)
-{
-  if(list)
-    {
-      list_free(list->tail);
-      objc_free(list);
-    }
-}
-#endif /* not __GNU_OBJC_LIST_H */