on the way to path extracting
[mc1516pa.git] / modelchecker / deque.c
index f7546f1..bff77ed 100644 (file)
@@ -41,11 +41,16 @@ deque *deq(deque *d)
 {
     node_t *front_tmp = d->front;
 
-    if (front_tmp != NULL){
+    if (front_tmp == NULL){
+        return d;
+    }
+    else if (front_tmp->ptr != NULL){
         front_tmp = front_tmp->ptr;
+        free(d->front);
         d->front = front_tmp;
     }
-    else if (front_tmp != NULL) {
+    else {
+        free(d->front);
         d->front = NULL;
         d->rear = NULL;
     }
@@ -55,8 +60,8 @@ deque *deq(deque *d)
 
 int isEmpty(deque *d)
 {
-    if (d->front != NULL && d->rear != NULL) return 1;
-    else return 0;
+    if (d->front != NULL && d->rear != NULL) return 0;
+    else return 1;
 }
 
 state_t *get_front(deque *d)