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