jitcraft/Zone.cpp
changeset 11 a350c2cc736a
parent 0 c455ebb9a5dc
child 12 75e385f68b7e
     1.1 --- a/jitcraft/Zone.cpp	Thu Jun 28 01:38:56 2012 -0700
     1.2 +++ b/jitcraft/Zone.cpp	Fri Jun 29 19:35:17 2012 -0700
     1.3 @@ -16,11 +16,18 @@
     1.4   * JITCraft. If not, see http://www.gnu.org/licenses/.
     1.5   */
     1.6  #include "Zone.h"
     1.7 +#include "TypeManager.h"
     1.8  
     1.9  using namespace jc;
    1.10  
    1.11  Zone jc::SingleThreadedZone;
    1.12  
    1.13 +Zone::Zone()
    1.14 +  : heap_(this),
    1.15 +    types_(NULL)
    1.16 +{
    1.17 +}
    1.18 +
    1.19  bool
    1.20  Zone::initialize()
    1.21  {
    1.22 @@ -28,5 +35,16 @@
    1.23          return false;
    1.24      if (!unsafeStack_.initialize())
    1.25          return false;
    1.26 +    if (!heap_.initialize())
    1.27 +        return false;
    1.28 +
    1.29 +    maps_[MapKind_Meta] = heap_.metaMap();
    1.30 +    if ((maps_[MapKind_Type] = heap_.allocateMap(MapKind_Type, sizeof(Map))) == NULL)
    1.31 +        return false;
    1.32 +
    1.33 +    types_ = new TypeManager(this);
    1.34 +    if (!types_ || !types_->initialize())
    1.35 +        return false;
    1.36 +
    1.37      return true;
    1.38  }