diff -r 0c3bcd50e361 -r a350c2cc736a jitcraft/Zone.cpp --- a/jitcraft/Zone.cpp Thu Jun 28 01:38:56 2012 -0700 +++ b/jitcraft/Zone.cpp Fri Jun 29 19:35:17 2012 -0700 @@ -16,11 +16,18 @@ * JITCraft. If not, see http://www.gnu.org/licenses/. */ #include "Zone.h" +#include "TypeManager.h" using namespace jc; Zone jc::SingleThreadedZone; +Zone::Zone() + : heap_(this), + types_(NULL) +{ +} + bool Zone::initialize() { @@ -28,5 +35,16 @@ return false; if (!unsafeStack_.initialize()) return false; + if (!heap_.initialize()) + return false; + + maps_[MapKind_Meta] = heap_.metaMap(); + if ((maps_[MapKind_Type] = heap_.allocateMap(MapKind_Type, sizeof(Map))) == NULL) + return false; + + types_ = new TypeManager(this); + if (!types_ || !types_->initialize()) + return false; + return true; }