ui: refactoring. changes active id mechanism

This commit is contained in:
2026-02-24 16:36:00 +02:00
parent 57b858f98f
commit 86c11968da
17 changed files with 104 additions and 126 deletions
+10 -2
View File
@@ -2,18 +2,26 @@
#include "d_array.h"
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
void init_d_arr_ptr(d_array_ptr_t *arr, int64_t init_capacity) {
arr->capacity = init_capacity;
arr->length = 0;
arr->arr = malloc(sizeof(void *) * init_capacity);
arr->fist_el = NULL;
arr->last_el = NULL;
memset(arr->arr, 0, init_capacity);
}
void add_d_arr_ptr(d_array_ptr_t *arr, void *ptr, int64_t idx) {
int64_t new_capacity = idx * 2;
if (idx > arr->capacity - 1) {
arr->capacity = idx * 2;
arr->arr = realloc(arr->arr, arr->capacity);
arr->arr = realloc(arr->arr, new_capacity);
memset(arr->arr+arr->capacity, 0, arr->capacity - new_capacity);
arr->capacity = new_capacity;
}
if (arr->fist_el == NULL) arr->fist_el = ptr;
arr->last_el = ptr;
arr->arr[idx] = ptr;
arr->length = idx+1;
}
+2
View File
@@ -6,6 +6,8 @@ typedef struct d_array_ptr_t {
int64_t capacity;
int64_t length;
void **arr;
void *fist_el;
void *last_el;
} d_array_ptr_t;
void init_d_arr_ptr(d_array_ptr_t *arr, int64_t init_capacity);