From bff4e3eb99ce8d70f826d95aff452971f42f26f0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Dejan=20Jovanovi=C4=87?= Date: Mon, 8 Feb 2010 18:45:02 +0000 Subject: [PATCH] Moving the template stuff back into the header in order to use CDList. --- src/context/context.cpp | 25 ------------------------- src/context/context.h | 21 ++++++++++++++++++++- 2 files changed, 20 insertions(+), 26 deletions(-) diff --git a/src/context/context.cpp b/src/context/context.cpp index 5d8ea933b..dce1d0a17 100644 --- a/src/context/context.cpp +++ b/src/context/context.cpp @@ -15,8 +15,6 @@ #include "context/context.h" #include "util/Assert.h" -#include - namespace CVC4 { namespace context { @@ -208,7 +206,6 @@ ContextNotifyObj::ContextNotifyObj(Context* pContext, bool preNotify) { } } - ContextNotifyObj::~ContextNotifyObj() { if (d_pCNOnext != NULL) { @@ -219,28 +216,6 @@ ContextNotifyObj::~ContextNotifyObj() } } - -template -void CDList::grow() { - if (d_list == NULL) { - // Allocate an initial list if one does not yet exist - d_sizeAlloc = 10; - d_list = malloc(sizeof(T)*d_sizeAlloc); - } - else { - // Allocate a new array with double the size - d_sizeAlloc *= 2; - T* newList = malloc(sizeof(T)*d_sizeAlloc); - - // Copy the old data - memcpy(d_list, newList, sizeof(T)*d_size); - - // Free the old list - free(d_list); - } -} - - } /* CVC4::context namespace */ diff --git a/src/context/context.h b/src/context/context.h index 244a8b792..3d44bb48c 100644 --- a/src/context/context.h +++ b/src/context/context.h @@ -18,6 +18,8 @@ #include "context/context_mm.h" #include "util/Assert.h" +#include +#include namespace CVC4 { namespace context { @@ -622,7 +624,24 @@ class CDList :public ContextObj { /** * Reallocate the array with more space. */ - void grow(); + void grow() { + if (d_list == NULL) { + // Allocate an initial list if one does not yet exist + d_sizeAlloc = 10; + d_list = (T*)malloc(sizeof(T)*d_sizeAlloc); + } + else { + // Allocate a new array with double the size + d_sizeAlloc *= 2; + T* newList = (T*)malloc(sizeof(T)*d_sizeAlloc); + + // Copy the old data + memcpy(d_list, newList, sizeof(T)*d_size); + + // Free the old list + free(d_list); + } + } public: /** -- 2.30.2