]> www.git.momoyon.org Git - lang.git/commitdiff
[main.c] Fix memory issues.
authorahmedsamyh <ahmedsamyh10@gmail.com>
Wed, 26 Feb 2025 18:02:23 +0000 (23:02 +0500)
committerahmedsamyh <ahmedsamyh10@gmail.com>
Wed, 26 Feb 2025 18:02:23 +0000 (23:02 +0500)
include/commonlib.h
main.c

index 7af1d7b3b4ec5f76c84a947a1279efd32dfd7269..1604c4f646a8eafb992cf37683a1c73eebcc5aee 100644 (file)
@@ -9,18 +9,13 @@
 #include <ctype.h>\r
 #include <assert.h>\r
 \r
-// Memory allocation\r
-#define C_MALLOC malloc\r
-#define C_FREE free\r
-#define C_REALLOC realloc\r
-#define C_MEMCPY memcpy\r
-\r
 // Remove Prefix\r
 #ifdef COMMONLIB_REMOVE_PREFIX\r
 #define ASSERT c_ASSERT\r
 #define ARRAY_LEN c_ARRAY_LEN\r
 \r
 #define da_append c_da_append\r
+#define da_free c_da_free\r
 #define DYNAMIC_ARRAY_INITIAL_CAPACITY c_DYNAMIC_ARRAY_INITIAL_CAPACITY\r
 // #define c_DYNAMIC_ARRAY_INITIAL_CAPACITY\r
 \r
 \r
 #endif // COMMONLIB_REMOVE_PREFIX\r
 \r
+// Memory allocation\r
+#ifndef C_MALLOC\r
+#define C_MALLOC malloc\r
+#endif\r
+#ifndef C_FREE\r
+#define C_FREE free\r
+#endif\r
+#ifndef C_REALLOC\r
+#define C_REALLOC realloc\r
+#endif\r
+#ifndef C_MEMCPY\r
+#define C_MEMCPY memcpy\r
+#endif\r
+\r
+\r
 // typedefs\r
 typedef unsigned int uint;\r
 typedef uint8_t      uint8;\r
@@ -164,6 +174,7 @@ typedef struct c_Arena c_Arena;
        } while (0)\r
 \r
 #define c_da_pop_front(da) (c_ASSERT(da.count > 0, "Array is empty"), da.count--, *da.items++)\r
+#define c_da_free(da) C_FREE(da.items)\r
 \r
 //\r
 // OS\r
diff --git a/main.c b/main.c
index 2ad0d0459e1e9375aa184742e45984fccc5e4ab5..6d7269e9a2c0ec203b3a09cba490571b413dd7d6 100644 (file)
--- a/main.c
+++ b/main.c
@@ -61,6 +61,10 @@ Lexer make_lexer(const char *filename) {
     return l;
 }
 
+void free_lexer(Lexer *l) {
+    free(l->src.data);
+}
+
 bool eof(Lexer *l) {
     return l->cur >= l->src.count;
 }
@@ -180,8 +184,12 @@ int main(int argc, char **argv) {
 
     Lexer l = make_lexer(filename);
 
-    lex(&l);
+    Tokens tokens = lex(&l);
 
     info("OK");
+
+    free_lexer(&l);
+
+    da_free(tokens);
     return 0;
 }