TP 9 exo2: Fix the link_delete function return value or code cleanup.
authorJerome Benoit <jerome.benoit@sap.com>
Fri, 3 Mar 2017 19:01:34 +0000 (20:01 +0100)
committerJerome Benoit <jerome.benoit@sap.com>
Fri, 3 Mar 2017 19:01:34 +0000 (20:01 +0100)
Signed-off-by: Jerome Benoit <jerome.benoit@sap.com>
TP_9/exo2/clist.c

index a089750ff01ae755ccd5e6f8c21f7b091a245107..edc296473e54c3910d0d4ea5fe3c3058aaf2913a 100644 (file)
@@ -55,12 +55,13 @@ link_t* list_insert(link_t* head, unsigned index, int value) {
 link_t* list_delete(link_t* head, unsigned index) {
     link_t* head_prev = NULL;
     link_t* head_next = NULL;
+    link_t* head_ret = NULL;
    
     if (index == 0) {
         head_next = head->next;
         free(head);
         head = head_next;
-        return head;
+        head_ret = head;
     } else {
         link_t* head_first = head;
         for (unsigned i = 0; i < index-1; i++) {
@@ -72,7 +73,12 @@ link_t* list_delete(link_t* head, unsigned index) {
         free(head);
         head = head_prev;
         head->next = head_next;
-        return head_first;
+        head_ret = head_first;
+    }
+    if (head_ret != NULL) {
+        return head_ret;
+    } else {
+        return NULL;
     }
 }
 
@@ -110,12 +116,12 @@ int list_get(link_t* head, unsigned index) {
     }
 }
 
-void list_clear(link_t* link) {
+void list_clear(link_t* head) {
     link_t* next_link = NULL;
 
-    while (link != NULL) {
-        next_link = link->next;
-        free(link);
-        link = next_link;
+    while (head != NULL) {
+        next_link = head->next;
+        free(head);
+        head = next_link;
     }
 }