]> Kevux Git Server - fll/commit
Progress: Continue memory array related changes.
authorKevin Day <kevin@kevux.org>
Sat, 22 Jul 2023 15:38:57 +0000 (10:38 -0500)
committerKevin Day <kevin@kevux.org>
Sat, 22 Jul 2023 15:38:57 +0000 (10:38 -0500)
commit35e6c5b73cd709df1f273bf4bc296b958f77d2f5
tree24ce206d3a588d76a1f7723f9cd85ad46c9ae866
parentda3912cd2833c43b44726b1f20ac1f544842f058
Progress: Continue memory array related changes.

I noticed that I could also implement f_memory_array_append() and f_memory_array_append_all() methods if I used memcpy() and a multiplication over the type size.

This:
    const f_status_t status = f_memory_array_increase_by(source.used, sizeof(f_socket_t), (void **) &destination->array, &destination->used, &destination->size);
    if (F_status_is_error(status)) return status;

    for (f_number_unsigned_t i = 0; i < source.used; ++i) {
      destination->array[destination->used++] = source.array[i];
    } // for

    return F_none;

Could instead become:

    const f_status_t status = f_memory_array_increase_by(source.used, sizeof(f_socket_t), (void **) &destination->array, &destination->used, &destination->size);
    if (F_status_is_error(status)) return status;

    memcpy(destination->array, source.array, sizeof(f_socket_t) * source.used);

    return F_none;

This could then be logic could then be moved into something like f_memory_array_append_all(), further simplifying the code into:
    return f_memory_array_append(source.array, source.used, sizeof(f_socket_t), (void **) &destination->array, &destination->used, &destination->size);

I need to think of the function structure that I want and so I only decided to comment in this commit.
Such a change is not implemented yet but may be done at some later time.
level_0/f_iki/c/iki/data.c
level_0/f_iki/c/iki/data.h
level_0/f_iki/c/iki/private-data.c
level_0/f_iki/c/iki/private-data.h
level_0/f_limit/c/limit/private-set.h
level_0/f_limit/c/limit/private-value.h
level_0/f_limit/c/limit/set.h
level_0/f_limit/c/limit/value.h
level_0/f_socket/c/socket/private-socket.h
level_0/f_socket/c/socket/socket.h