From bdc3fd59d2331faac3d241fc69d0561584bd059e Mon Sep 17 00:00:00 2001 From: ENGO150 Date: Wed, 12 Apr 2023 17:10:51 +0200 Subject: [PATCH] implemented why2_llist in core-flags --- src/core/lib/flags.c | 60 +++++--------------------------------------- 1 file changed, 6 insertions(+), 54 deletions(-) diff --git a/src/core/lib/flags.c b/src/core/lib/flags.c index 6e58476..462652e 100644 --- a/src/core/lib/flags.c +++ b/src/core/lib/flags.c @@ -20,6 +20,7 @@ along with this program. If not, see . #include +#include #include //CONSTS (this is just local) @@ -37,65 +38,16 @@ why2_bool flagsChanged = 0; //CHANGES TO 1 WHEN U USE why2_set_flags char *memory_identifier = DEFAULT_MEMORY_IDENTIFIER; //LINKED LIST SHIT -typedef struct node -{ - char *identifier; - struct node *next; -} node_t; - -node_t *list_head = NULL; - -void push_to_list_end(char *identifier) -{ - node_t *new_node = malloc(sizeof(node_t)); - node_t *buffer = list_head; - - new_node -> identifier = identifier; - new_node -> next = NULL; - - if (list_head == NULL) //LIST IS EMTPY - { - list_head = new_node; - } else - { - while (buffer -> next != NULL) buffer = buffer -> next; //GO TO THE END OF LIST - - buffer -> next = new_node; //LINK - } -} - -void remove_node_from_end(void) -{ - if (list_head == NULL) return; //EMPTY LIST - - node_t *buffer = list_head; - node_t *deallocating_node; - - if (buffer -> next == NULL) //ONLY ONE NODE - { - deallocating_node = buffer; - - list_head = NULL; - } else - { - while (buffer -> next -> next != NULL) buffer = buffer -> next; //GO TO THE NODE BEFORE END - - deallocating_node = buffer -> next; - - buffer -> next = NULL; //UNLINK - } - - free(deallocating_node); -} +why2_node_t *list_head = NULL; char *get_last_node_identifier(void) { if (list_head == NULL) return DEFAULT_MEMORY_IDENTIFIER; - node_t *buffer = list_head; + why2_node_t *buffer = list_head; while (buffer -> next != NULL) buffer = buffer -> next; - return buffer -> identifier; + return buffer -> value; } //GETTERS @@ -188,14 +140,14 @@ void why2_set_encryption_operation(why2_encryption_operation_cb newEncryptionOpe void why2_set_memory_identifier(char *new_memory_identifier) { - push_to_list_end(new_memory_identifier); + why2_push(list_head, new_memory_identifier); memory_identifier = new_memory_identifier; } void why2_reset_memory_identifier(void) { - remove_node_from_end(); + why2_remove_back(list_head); memory_identifier = get_last_node_identifier(); }