Compare commits

..

No commits in common. "6f78d26ea1a4942a3319412f9449a406ed5c2af5" and "d97cfb97be7444df6664bc571df8430415a0e955" have entirely different histories.

3 changed files with 10 additions and 2 deletions

4
.gitignore vendored
View File

@ -1,5 +1,7 @@
*.o *.o
*.d *.d
/core /core
/build /oas
/oas-asan
/oas-msan
/reports /reports

View File

@ -17,6 +17,10 @@ error_t *ast_node_alloc(ast_node_t **output) {
return nullptr; return nullptr;
} }
void ast_node_free_value(ast_node_t *node) {
// TODO: decide how value ownership will work and clean it up here
}
void ast_node_free(ast_node_t *node) { void ast_node_free(ast_node_t *node) {
if (node == nullptr) if (node == nullptr)
return; return;
@ -26,6 +30,8 @@ void ast_node_free(ast_node_t *node) {
free(node->children); free(node->children);
} }
ast_node_free_value(node);
memset(node, 0, sizeof(ast_node_t)); memset(node, 0, sizeof(ast_node_t));
free(node); free(node);
} }

View File

@ -136,7 +136,7 @@ error_t *lexer_open(lexer_t *lex, char *path) {
* *
* @pre There must be at least n characters in the input buffer * @pre There must be at least n characters in the input buffer
*/ */
void lexer_shift_buffer(lexer_t *lex, size_t n) { void lexer_shift_buffer(lexer_t *lex, int n) {
assert(lex->buffer_count >= n); assert(lex->buffer_count >= n);
lex->buffer_count -= n; lex->buffer_count -= n;
memmove(lex->buffer, lex->buffer + n, lex->buffer_count); memmove(lex->buffer, lex->buffer + n, lex->buffer_count);