From 03a7108cc8bd2c68750e829598bb29f49275cbbc Mon Sep 17 00:00:00 2001 From: obarun <eric@obarun.org> Date: Sat, 18 May 2024 23:50:02 +1100 Subject: [PATCH] less HEAP memory usage --- src/lib66/environ/env_append_version.c | 10 +++------- src/lib66/environ/env_check_version.c | 9 ++++----- src/lib66/parse/parse_store_main.c | 9 ++------- 3 files changed, 9 insertions(+), 19 deletions(-) diff --git a/src/lib66/environ/env_append_version.c b/src/lib66/environ/env_append_version.c index 323070e5..75fd63ce 100644 --- a/src/lib66/environ/env_append_version.c +++ b/src/lib66/environ/env_append_version.c @@ -28,21 +28,17 @@ int env_append_version(stralloc *saversion, char const *svconf, char const *vers int r ; - stralloc sa = STRALLOC_ZERO ; + _alloc_stk_(stk, strlen(version) + 1) ; - if (!env_check_version(&sa,version)) + if (!env_check_version(&stk,version)) return 0 ; - saversion->len = 0 ; - - if (!auto_stra(saversion,svconf,"/",sa.s)) + if (!auto_stra(saversion,svconf,"/",stk.s)) log_warnusys_return(LOG_EXIT_ZERO,"stralloc") ; r = scan_mode(saversion->s,S_IFDIR) ; if (r == -1 || !r) log_warnusys_return(LOG_EXIT_ZERO,"find the versioned directory: ",saversion->s) ; - stralloc_free(&sa) ; - return 1 ; } diff --git a/src/lib66/environ/env_check_version.c b/src/lib66/environ/env_check_version.c index 9288eb75..ce55f5c7 100644 --- a/src/lib66/environ/env_check_version.c +++ b/src/lib66/environ/env_check_version.c @@ -14,23 +14,22 @@ #include <oblibs/log.h> #include <oblibs/string.h> - -#include <skalibs/stralloc.h> +#include <oblibs/stack.h> #include <66/environ.h> #include <66/constants.h> #include <66/utils.h> -int env_check_version(stralloc *sa, char const *version) +int env_check_version(stack *stk, char const *version) { log_flow() ; int r ; - r = version_store(sa,version,SS_CONFIG_VERSION_NDOT) ; + r = version_store(stk,version,SS_CONFIG_VERSION_NDOT) ; if (r == -1) - log_warnusys_return(LOG_EXIT_ZERO,"stralloc") ; + log_warnusys_return(LOG_EXIT_ZERO,"stack") ; if (!r) log_warn_return(LOG_EXIT_ZERO,"invalid version format: ",version) ; diff --git a/src/lib66/parse/parse_store_main.c b/src/lib66/parse/parse_store_main.c index 61c8e4b0..15c562a3 100644 --- a/src/lib66/parse/parse_store_main.c +++ b/src/lib66/parse/parse_store_main.c @@ -52,19 +52,14 @@ int parse_store_main(resolve_service_t *res, stack *store, int idsec, int idkey) case KEY_MAIN_VERSION: { - stralloc sa = STRALLOC_ZERO ; - if (!auto_stra(&sa, store->s)) - goto err ; - - r = version_store(&sa, store->s, SS_CONFIG_VERSION_NDOT) ; + r = version_store(store, store->s, SS_CONFIG_VERSION_NDOT) ; if (r == -1) goto err ; if (!r) parse_error_return(0, 0, idsec, idkey) ; - res->version = resolve_add_string(wres, sa.s) ; - stralloc_free(&sa) ; + res->version = resolve_add_string(wres, store->s) ; } break ; -- GitLab