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
*.d
/core
/build
/oas
/oas-asan
/oas-msan
/reports

View File

@ -17,6 +17,10 @@ error_t *ast_node_alloc(ast_node_t **output) {
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) {
if (node == nullptr)
return;
@ -26,6 +30,8 @@ void ast_node_free(ast_node_t *node) {
free(node->children);
}
ast_node_free_value(node);
memset(node, 0, sizeof(ast_node_t));
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
*/
void lexer_shift_buffer(lexer_t *lex, size_t n) {
void lexer_shift_buffer(lexer_t *lex, int n) {
assert(lex->buffer_count >= n);
lex->buffer_count -= n;
memmove(lex->buffer, lex->buffer + n, lex->buffer_count);