summaryrefslogtreecommitdiff
path: root/cpp/zone.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/zone.hpp')
-rw-r--r--cpp/zone.hpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/cpp/zone.hpp b/cpp/zone.hpp
index f8c9cba..e7e73e1 100644
--- a/cpp/zone.hpp
+++ b/cpp/zone.hpp
@@ -41,10 +41,17 @@ private:
std::vector<char*> m_ptrs;
private:
+ char* realloc_real(char* ptr, size_t count);
+
+private:
zone(const zone&);
};
+inline zone::zone() { }
+
+inline zone::~zone() { clear(); }
+
inline char* zone::malloc(size_t count)
{
char* ptr = (char*)::malloc(count);
@@ -58,6 +65,15 @@ inline char* zone::malloc(size_t count)
return ptr;
}
+inline char* zone::realloc(char* ptr, size_t count)
+{
+ if(ptr == NULL) {
+ return zone::malloc(count);
+ } else {
+ return realloc_real(ptr, count);
+ }
+}
+
inline object* zone::malloc_container(size_t count)
{
return (object*)zone::malloc(sizeof(object)*count);