aboutsummaryrefslogtreecommitdiff
path: root/src/compiler/parser/parser.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/parser/parser.c')
-rw-r--r--src/compiler/parser/parser.c10
1 files changed, 5 insertions, 5 deletions
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;