From bf84010e01bb11874689ce53ea4df853b2e41c2b Mon Sep 17 00:00:00 2001 From: A404M Date: Thu, 26 Sep 2024 21:54:33 +0330 Subject: some small performance improvements --- src/compiler/parser/parser.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/compiler/parser/parser.c') diff --git a/src/compiler/parser/parser.c b/src/compiler/parser/parser.c index fcee276..ee9e69b 100644 --- a/src/compiler/parser/parser.c +++ b/src/compiler/parser/parser.c @@ -341,13 +341,12 @@ ParserScopeMetadata *parserScope( } } - ParsedNode **operands = a404m_malloc(nodes_inserted * sizeof(ParsedNode *)); size_t nodes_size = nodes_inserted; nodes_inserted = 0; ParsedNode *last = NULL; - for(size_t i = nodes_size-1;i != (typeof(i))-1;++i){ + for (size_t i = nodes_size - 1; i != (typeof(i))-1; ++i) { ParsedNode *currentNode = nodes[i]; if (currentNode->parent == parent) { last = currentNode; @@ -364,15 +363,16 @@ ParserScopeMetadata *parserScope( PARSED_TOKEN_STRINGS[currentNode->token]); goto RETURN_ERROR; } - operands[nodes_inserted] = currentNode; + if (nodes_inserted != i) { + nodes[nodes_inserted] = currentNode; + } ++nodes_inserted; } } - free(nodes); ParserScopeMetadata *metadata = a404m_malloc(sizeof(*metadata)); metadata->operands = - a404m_realloc(operands, nodes_inserted * sizeof(ParsedNode *)); + a404m_realloc(nodes, nodes_inserted * sizeof(ParsedNode *)); metadata->operands_size = nodes_inserted; return metadata; -- cgit v1.2.3