diff options
| author | cvs2svn <cvs2svn@FreeBSD.org> | 2000-05-27 02:25:29 +0000 | 
|---|---|---|
| committer | cvs2svn <cvs2svn@FreeBSD.org> | 2000-05-27 02:25:29 +0000 | 
| commit | 9bf6bc8933de87c41c8245b553f777a8bbdcab7f (patch) | |
| tree | 6bfb073c78cbdfdc5ca8e0b975d84e6be75f2c42 /contrib/libobjc/objc/objc-list.h | |
| parent | c6d2f3514a57725780ace95a120243815e145505 (diff) | |
Diffstat (limited to 'contrib/libobjc/objc/objc-list.h')
| -rw-r--r-- | contrib/libobjc/objc/objc-list.h | 147 | 
1 files changed, 0 insertions, 147 deletions
| diff --git a/contrib/libobjc/objc/objc-list.h b/contrib/libobjc/objc/objc-list.h deleted file mode 100644 index de083a5861e5a..0000000000000 --- a/contrib/libobjc/objc/objc-list.h +++ /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 */ | 
