#include namespace Memory { SmartHeap::SmartHeap(size_t Size, VirtualMemoryArea *vma) { if (vma) { this->vma = vma; this->Object = vma->RequestPages(TO_PAGES(Size)); } else this->Object = kmalloc(Size); this->ObjectSize = Size; memset(this->Object, 0, Size); } SmartHeap::~SmartHeap() { if (this->vma) this->vma->FreePages(this->Object, TO_PAGES(this->ObjectSize)); else kfree(this->Object); } }