From ee25ad42c5e9ecdc5a3aa7125e657ce26cc9535c Mon Sep 17 00:00:00 2001
From: Edmond Yoo <hj3yoo@uwaterloo.ca>
Date: Sun, 16 Sep 2018 02:48:50 +0000
Subject: [PATCH] temp
---
src/list.c | 74 ++++++++++++++++++++++---------------
1 files changed, 44 insertions(+), 30 deletions(-)
diff --git a/src/list.c b/src/list.c
index 948d960..39e3033 100644
--- a/src/list.c
+++ b/src/list.c
@@ -1,16 +1,18 @@
#include <stdlib.h>
#include <string.h>
#include "list.h"
+#include "option_list.h"
list *make_list()
{
- list *l = malloc(sizeof(list));
- l->size = 0;
- l->front = 0;
- l->back = 0;
- return l;
+ list *l = malloc(sizeof(list));
+ l->size = 0;
+ l->front = 0;
+ l->back = 0;
+ return l;
}
+/*
void transfer_node(list *s, list *d, node *n)
{
node *prev, *next;
@@ -22,6 +24,7 @@
if(s->front == n) s->front = next;
if(s->back == n) s->back = prev;
}
+*/
void *list_pop(list *l){
if(!l->back) return 0;
@@ -37,44 +40,55 @@
void list_insert(list *l, void *val)
{
- node *new = malloc(sizeof(node));
- new->val = val;
- new->next = 0;
+ node *new = malloc(sizeof(node));
+ new->val = val;
+ new->next = 0;
- if(!l->back){
- l->front = new;
- new->prev = 0;
- }else{
- l->back->next = new;
- new->prev = l->back;
- }
- l->back = new;
- ++l->size;
+ if(!l->back){
+ l->front = new;
+ new->prev = 0;
+ }else{
+ l->back->next = new;
+ new->prev = l->back;
+ }
+ l->back = new;
+ ++l->size;
}
void free_node(node *n)
{
- node *next;
- while(n) {
- next = n->next;
- free(n);
- n = next;
- }
+ node *next;
+ while(n) {
+ next = n->next;
+ free(n);
+ n = next;
+ }
}
void free_list(list *l)
{
- free_node(l->front);
- free(l);
+ free_node(l->front);
+ free(l);
}
void free_list_contents(list *l)
{
- node *n = l->front;
- while(n){
- free(n->val);
- n = n->next;
- }
+ node *n = l->front;
+ while(n){
+ free(n->val);
+ n = n->next;
+ }
+}
+
+void free_list_contents_kvp(list *l)
+{
+ node *n = l->front;
+ while (n) {
+ kvp *p = n->val;
+ free(p->key);
+ free(n->val);
+ n = n->next;
+ }
}
void **list_to_array(list *l)
--
Gitblit v1.10.0