diff options
Test bench app for garbage collectors
1 files changed, 25 insertions, 0 deletions
| -rw-r--r-- | gctest/gc_leak.cpp | 25 |
diff --git a/gctest/gc_leak.cpp b/gctest/gc_leak.cpp new file mode 100644 index 0000000..2a1b493 --- /dev/null +++ b/gctest/gc_leak.cpp @@ -0,0 +1,25 @@ +#include <memory>
+
+#include "gc.h"
+
+class LeakGC : public GarbageCollector
+{
+ void* Allocate(size_t size) override { return ::operator new(size); }
+
+ void SetRoot(Object* root) override { m_Root = root; }
+
+ void VisitReference(Object*, Object*, void*) override {}
+
+ void Shutdown() override
+ {
+ DestroyVisitor dv;
+ dv.Destroy(m_Root);
+ }
+
+ Object* m_Root;
+};
+
+std::unique_ptr<GarbageCollector> CreateGarbageCollector(int&, const char*[])
+{
+ return std::unique_ptr<GarbageCollector>(new LeakGC());
+}
|
