jitcraft/Array.cpp
changeset 53 13bd3a8df334
parent 31 0f330cf7e09a
child 59 b7d61ddb3c8d
     1.1 --- a/jitcraft/Array.cpp	Sat Jul 07 01:45:33 2012 -0400
     1.2 +++ b/jitcraft/Array.cpp	Sat Jul 07 17:11:31 2012 -0700
     1.3 @@ -45,19 +45,21 @@
     1.4      if (type->contained()->primitive() == PrimitiveType_Char)
     1.5          return sizeof(Array) + elements * sizeof(char);
     1.6      assert(type->contained()->isFloat());
     1.7 -    return sizeof(Array) + elements * sizeof(float);
     1.8 +    return elements * sizeof(float);
     1.9  }
    1.10  
    1.11  Array *
    1.12  Array::New(Zone *zone, Handle<ArrayMap> map, uint32 elements, Heap::Tenure tenure)
    1.13  {
    1.14 -    size_t bytes = SizeFor(map->type(), elements);
    1.15 +    size_t elementBytes = SizeFor(map->type(), elements);
    1.16 +    size_t bytes = sizeof(Array) + elementBytes;
    1.17      Local<Array> array(zone, Array::cast(zone->allocate(map, bytes, tenure)));
    1.18      if (!array)
    1.19          return NULL;
    1.20  
    1.21      array->nelements_ = elements;
    1.22      array->elements_ = VoidPtr((Array *)array + 1);
    1.23 +    memset(array->elements_, 0, elementBytes);
    1.24      return array;
    1.25  }
    1.26