From 3ec6aeb106ef4f898b8e06fbbf67184954759d31 Mon Sep 17 00:00:00 2001 From: Laria Carolin Chabowski Date: Sun, 25 Aug 2024 18:16:36 +0200 Subject: [PATCH] Fixing uninitialized vars etc found by building with -O2 --- src/apflc.c | 5 +++-- src/bytecode.c | 3 +-- src/context.c | 9 +++++---- src/re.c | 2 +- src/strings.c | 8 +++++--- 5 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/apflc.c b/src/apflc.c index 79a9249..d306aca 100644 --- a/src/apflc.c +++ b/src/apflc.c @@ -139,6 +139,9 @@ main(int argc, const char *argv[]) (void)argc; const char **argp = argv+1; + + int rv = 1; + FILE *in = NULL; FILE *out = NULL; @@ -159,8 +162,6 @@ main(int argc, const char *argv[]) goto error_before_ctx; } - int rv = 1; - if ( (in = openfile(argv[0], name_in, "rb")) == NULL || (out = openfile(argv[0], name_out, "wb")) == NULL diff --git a/src/bytecode.c b/src/bytecode.c index 86f7720..e5fd7c0 100644 --- a/src/bytecode.c +++ b/src/bytecode.c @@ -896,9 +896,8 @@ unserialize_ilist( struct apfl_string *filename; FMT_TRY(unserialize_string(unserializer, &filename)); - size_t tmproots; + size_t tmproots = apfl_gc_tmproots_begin(unserializer->gc); if (filename != NULL) { - tmproots = apfl_gc_tmproots_begin(unserializer->gc); if (!apfl_gc_tmproot_add(unserializer->gc, GC_OBJECT_FROM(filename, GC_TYPE_STRING))) { return false; } diff --git a/src/context.c b/src/context.c index 13e3e26..76ef73c 100644 --- a/src/context.c +++ b/src/context.c @@ -2433,15 +2433,16 @@ apfl_load(apfl_ctx ctx, struct apfl_source_reader reader, apfl_stackidx name) } struct apfl_error err; - if (!apfl_compile_whole_file( + bool ok = apfl_compile_whole_file( &ctx->gc, parser, &err, ilist - )) { + ); + apfl_parser_destroy(parser); + apfl_tokenizer_destroy(tokenizer); + if (!ok) { apfl_drop(ctx, -1); - apfl_parser_destroy(parser); - apfl_tokenizer_destroy(tokenizer); apfl_raise_error_object(ctx, err); } } diff --git a/src/re.c b/src/re.c index 063fcda..10612ae 100644 --- a/src/re.c +++ b/src/re.c @@ -312,7 +312,7 @@ iter_match( size_t i ) { PCRE2_SIZE *ovector = pcre2_get_ovector_pointer(md); - PCRE2_SIZE offset_unadjusted; + PCRE2_SIZE offset_unadjusted = 0; if (i > 0) { offset_unadjusted = ovector[1]; diff --git a/src/strings.c b/src/strings.c index b2eba29..e397dc0 100644 --- a/src/strings.c +++ b/src/strings.c @@ -49,9 +49,11 @@ int apfl_string_view_cmp(struct apfl_string_view a, struct apfl_string_view b) { size_t n = a.len > b.len ? b.len : a.len; - int cmp = memcmp(a.bytes, b.bytes, n); - if (cmp != 0) { - return cmp; + if (n != 0) { + int cmp = memcmp(a.bytes, b.bytes, n); + if (cmp != 0) { + return cmp; + } } if (a.len == b.len) { return 0;