From be75ccd6f868b418c9956c6d11d17d5494b7d66d Mon Sep 17 00:00:00 2001 From: Blendi Date: Tue, 2 Jun 2026 21:04:34 +0200 Subject: [PATCH] parser: apparently i don't know how realloc works --- src/parser.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/parser.c b/src/parser.c index 5aa0999..36fcbd3 100644 --- a/src/parser.c +++ b/src/parser.c @@ -149,13 +149,15 @@ noomP_Node* noomP_allocNode(noomP_Parser* parser) { int noomP_addSubnode(noomP_Parser* parser, noomP_Node* node, noomP_Node* subnode) { if (node->subnodec == node->subnode_cap) { - node->subnode_cap = node->subnode_cap * 2; - node->subnodes = noom_realloc(node->subnodes, sizeof(noomP_Node*) * node->subnode_cap); - - if (node->subnodes == 0) { - parser->error_state = NOOMP_ERROR_OOM; + noomP_Node** new = noom_realloc(node->subnodes, sizeof(noomP_Node*) * node->subnode_cap * 2); + + if (new == 0) { + parser->error_state = NOOMP_ERROR_OOM; // well fuck return 1; } + + node->subnodes = new; + node->subnode_cap = node->subnode_cap * 2; } node->subnodes[node->subnodec++] = subnode;