diff --git a/.gitignore b/.gitignore index d156fe8..934c3da 100644 --- a/.gitignore +++ b/.gitignore @@ -7,5 +7,6 @@ src/Grammar language llvm.ll /language +.vscode/ src/GC/tests/*.out diff --git a/src/GC/heap.cpp b/src/GC/heap.cpp index 9b03815..8fca1b1 100644 --- a/src/GC/heap.cpp +++ b/src/GC/heap.cpp @@ -118,4 +118,20 @@ namespace GC { } } } + + // For testing purposes + void print_line(bool marked, void *start, size_t size) { + std::cout << "Marked: " << marked << "\nStart adr: " << start << "\nSize" << size << std::endl; + } + + void Heap::print_contents() { + std::cout << "ALLOCATED CHUNKS" << std::endl; + for (auto chunk : m_allocated_chunks) { + print_line(chunk->marked, chunk->start, chunk->size); + } + std::cout << "FREED CHUNKS" << std::endl; + for (auto fchunk : m_freed_chunks) { + print_line(fchunk->marked, fchunk->start, fchunk->size); + } + } } \ No newline at end of file diff --git a/src/GC/include/heap.hpp b/src/GC/include/heap.hpp index 59a78d7..14737ad 100644 --- a/src/GC/include/heap.hpp +++ b/src/GC/include/heap.hpp @@ -7,7 +7,7 @@ #include using namespace std; -#include "include/chunk.hpp" +#include "chunk.hpp" #define HEAP_SIZE 65536 @@ -29,6 +29,7 @@ namespace GC { } void *alloc(size_t size); + void print_contents(); private: