f17-improvement-consistency-performance #25

Merged
Mineplay merged 33 commits from f17-improvement-consistency-performance into main 2025-07-10 16:57:05 -05:00
Showing only changes of commit 18c7f70fca - Show all commits

View file

@ -26,7 +26,7 @@
#include <Hallocy/Core/Allocator.h> #include <Hallocy/Core/Allocator.h>
#include <Hallocy/Core/Memory.h> #include <Hallocy/Core/Memory.h>
#include <Hallocy/Utils/Error.h> #include <Hallocy/Utils/Error.h>
#include <stdio.h>
FledastyError fledasty_doubly_linked_list_initialize(FledastyDoublyLinkedList *new_doubly_linked_list, void *values, const size_t values_size, const size_t element_byte_size) { FledastyError fledasty_doubly_linked_list_initialize(FledastyDoublyLinkedList *new_doubly_linked_list, void *values, const size_t values_size, const size_t element_byte_size) {
if (new_doubly_linked_list == NULL) { if (new_doubly_linked_list == NULL) {
return FLEDASTY_ERROR_FAILED_ALLOCATION; return FLEDASTY_ERROR_FAILED_ALLOCATION;
@ -55,20 +55,22 @@ FledastyError fledasty_doubly_linked_list_initialize(FledastyDoublyLinkedList *n
new_doubly_linked_list->start->previous = NULL; new_doubly_linked_list->start->previous = NULL;
new_doubly_linked_list->start->next = NULL; new_doubly_linked_list->start->next = NULL;
FledastyDoublyLinkedListNode *last_node = new_doubly_linked_list->start; FledastyDoublyLinkedListNode *last_node = new_doubly_linked_list->start;
for (size_t index = new_doubly_linked_list->element_byte_size; index < new_doubly_linked_list->size * new_doubly_linked_list->element_byte_size; index += new_doubly_linked_list->element_byte_size) { for (size_t index = new_doubly_linked_list->element_byte_size; index < new_doubly_linked_list->size * new_doubly_linked_list->element_byte_size; index += new_doubly_linked_list->element_byte_size) {
FledastyDoublyLinkedListNode *new_node = (FledastyDoublyLinkedListNode*)hallocy_malloc(sizeof(FledastyDoublyLinkedListNode)); FledastyDoublyLinkedListNode *new_node = (FledastyDoublyLinkedListNode*)hallocy_malloc(sizeof(FledastyDoublyLinkedListNode));
if (new_node == NULL) { if (new_node == NULL) {
FledastyDoublyLinkedListNode *previous_node = NULL;
FledastyDoublyLinkedListNode *current_node = new_doubly_linked_list->start; FledastyDoublyLinkedListNode *current_node = new_doubly_linked_list->start;
while (current_node != NULL) { while (current_node->next != NULL) {
previous_node = current_node;
current_node = current_node->next; current_node = current_node->next;
hallocy_free(previous_node->value); hallocy_free(current_node->previous->value);
hallocy_free(previous_node); hallocy_free(current_node->previous);
} }
hallocy_free(current_node->value);
hallocy_free(current_node);
return FLEDASTY_ERROR_FAILED_ALLOCATION; return FLEDASTY_ERROR_FAILED_ALLOCATION;
} }
@ -76,16 +78,17 @@ FledastyError fledasty_doubly_linked_list_initialize(FledastyDoublyLinkedList *n
if (new_node->value == NULL) { if (new_node->value == NULL) {
hallocy_free(new_node); hallocy_free(new_node);
FledastyDoublyLinkedListNode *previous_node = NULL;
FledastyDoublyLinkedListNode *current_node = new_doubly_linked_list->start; FledastyDoublyLinkedListNode *current_node = new_doubly_linked_list->start;
while (current_node != NULL) { while (current_node->next != NULL) {
previous_node = current_node;
current_node = current_node->next; current_node = current_node->next;
hallocy_free(previous_node->value); hallocy_free(current_node->previous->value);
hallocy_free(previous_node); hallocy_free(current_node);
} }
hallocy_free(current_node->value);
hallocy_free(current_node);
return FLEDASTY_ERROR_FAILED_ALLOCATION; return FLEDASTY_ERROR_FAILED_ALLOCATION;
} }