summaryrefslogtreecommitdiff
path: root/src/base/list.c~
diff options
context:
space:
mode:
authorTomas Chvatal (scarabeus) <tomas.chvatal@gmail.com>2008-10-22 22:51:24 +0200
committerTomas Chvatal (scarabeus) <tomas.chvatal@gmail.com>2008-10-22 22:51:24 +0200
commit44daf03024fbf7cbffa10349044786f6ab784821 (patch)
treefe311eb22e2d853dfc18fde1a9e55d21815f4f82 /src/base/list.c~
parente12753d2ec9db83ec08bb9db63902a82fb245cdd (diff)
Revert "X"
This reverts commit e12753d2ec9db83ec08bb9db63902a82fb245cdd.
Diffstat (limited to 'src/base/list.c~')
-rw-r--r--src/base/list.c~167
1 files changed, 0 insertions, 167 deletions
diff --git a/src/base/list.c~ b/src/base/list.c~
deleted file mode 100644
index 72ea95e..0000000
--- a/src/base/list.c~
+++ /dev/null
@@ -1,167 +0,0 @@
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <assert.h>
-
-#include "main.h"
-#include "list.h"
-
-list_t* newList()
-{
- list_t *new;
-
- new = malloc(sizeof(list_t));
- memset(new, 0, sizeof(list_t));
- return new;
-}
-
-list_t* cloneList(list_t *p)
-{
- list_t *new;
-
- assert(p != NULL);
- new = malloc( sizeof(list_t) );
- memcpy(new, p, sizeof(list_t) );
- if(p->list != NULL) {
- new->list = malloc( p->alloc * sizeof(void *) );
- memcpy(new->list, p->list, p->alloc * sizeof(void *));
- }
- return new;
-}
-
-list_t* cloneListItem(list_t *p, void *f)
-{
- list_t *new;
- void* (*fce)(void *);
- int i;
-
- assert(p != NULL);
- assert(f != NULL);
- new = cloneList(p);
- fce = f;
- for (i = 0; i < p->count; i++)
- new->list[i] = fce(p->list[i]);
- return new;
-}
-
-void addList(list_t *p, void *item)
-{
- assert( p != NULL );
-
- if (p->alloc == 0) {
- p->alloc = LIST_ALLOC_LIMIT;
- p->count = 1;
- p->list = malloc(p->alloc * sizeof(void *));
- p->list[0] = item;
- return;
- }
-
- if (p->count + 1 <= p->alloc) {
- p->list[p->count] = item;
- p->count += 1;
- return;
- }
-
- if (p->count + 1 > p->alloc) {
- void **new;
-#ifdef DEBUG_LIST
- printf("Realocating from %d to %d (count=%d)\n",
- p->alloc, p->alloc+LIST_ALLOC_LIMIT, p->count);
-#endif
- p->alloc += LIST_ALLOC_LIMIT;
- new = malloc(p->alloc * sizeof(void *));
- memcpy(new, p->list, p->count * sizeof(void *));
- free(p->list);
- p->list = new;
- p->list[p->count] = item;
- p->count++;
- return;
- }
-}
-
-void insList(list_t *p, int n, void *item)
-{
- assert( p != NULL );
- addList(p, NULL); // :)
- assert(n >= 0 || n < p->count);
- memmove(p->list+n+1, p->list+n, ((p->count-1) - n) * sizeof(void *));
- p->list[n] = item;
-}
-
-void *getList(list_t *p, int n)
-{
- assert(p != NULL);
- assert(n >= 0 || n < p->count);
- return p->list[n];
-}
-
-int searchListItem(list_t *p, void *n)
-{
- int i;
-
- assert( p != NULL );
- for (i = 0; i < p->count; i++)
- if (p->list[i] == n)
- return i;
- return -1;
-}
-
-void delList(list_t *p, int n)
-{
- assert(p != NULL);
- assert(n >= 0 || n < p->count);
- memmove(p->list+n, p->list+n+1, ( (p->count-1) - n ) * sizeof(void *));
- p->count--;
- if(p->count + LIST_ALLOC_LIMIT < p->alloc) {
- void **new;
-
-#ifdef DEBUG_LIST
- printf("Realocating from %d to %d (count=%d)\n",
- p->alloc, p->alloc-LIST_ALLOC_LIMIT, p->count);
-#endif
- p->alloc -= LIST_ALLOC_LIMIT;
- new = malloc(p->alloc * sizeof(void *) );
- memcpy(new, p->list, p->count * sizeof(void *) );
- free(p->list);
- p->list = new;
- }
-}
-
-void delListItem(list_t *p, int n, void *f)
-{
- int (*fce)(void *);
-
- assert(p != NULL);
- assert(n >= 0 || n < p->count);
- fce = f;
- if(fce != NULL)
- fce(p->list[n]);
- delList(p, n);
-}
-
-void listDoEmpty(list_t *p)
-{
- p->count = 0;
-}
-
-void destroyList(list_t *p)
-{
- assert( p != NULL );
-
- if( p->list != NULL )free(p->list);
- free(p);
-}
-
-void destroyListItem(list_t *p, void *f)
-{
- void (*fce)(void *);
- int i;
-
- assert( p != NULL );
- assert( f != NULL );
- fce = f;
- for (i = 0; i < p->count; i++)
- fce(p->list[i]);
- destroyList(p);
-}