src/Types.cpp
changeset 188 bab29bcec7fe
parent 186 03a663e96860
child 195 c1ba166f3fc4
     1.1 --- a/src/Types.cpp	Sun Sep 16 19:02:23 2012 -0700
     1.2 +++ b/src/Types.cpp	Sun Sep 16 21:34:10 2012 -0700
     1.3 @@ -104,6 +104,29 @@
     1.4  }
     1.5  
     1.6  Type *
     1.7 +Type::NewExternalArray(Zone *zone, Handle<Type> contained)
     1.8 +{
     1.9 +    Local<Type> type(zone, Type::cast(zone->allocate(MapKind_Type, sizeof(Type), Heap::Tenure_Old)));
    1.10 +    if (!type)
    1.11 +        return NULL;
    1.12 +
    1.13 +    assert(contained->isPrimitive());
    1.14 +
    1.15 +    type->kind_ = EXTERNAL_ARRAY;
    1.16 +    type->name_ = NULL;
    1.17 +    type->contained_ = contained;
    1.18 +    type->returnType_ = NULL;
    1.19 +    type->parameters_ = NULL;
    1.20 +    type->defaults_ = NULL;
    1.21 +    type->fields_ = NULL;
    1.22 +    type->newMap_ = NULL;
    1.23 +    type->elements_ = DYNAMIC_ARRAY_SIZE;
    1.24 +    type->levels_ = 1;
    1.25 +    type->const_ = false;
    1.26 +    return type;
    1.27 +}
    1.28 +
    1.29 +Type *
    1.30  Type::NewReference(Zone *zone, Handle<Type> contained, bool isConst)
    1.31  {
    1.32      Local<Type> type(zone, Type::cast(zone->allocate(MapKind_Type, sizeof(Type), Heap::Tenure_Old)));