1.1 --- a/jitcraft/BytecodeCompiler.cpp Mon Jul 02 01:52:57 2012 -0700
1.2 +++ b/jitcraft/BytecodeCompiler.cpp Mon Jul 02 14:04:29 2012 -0700
1.3 @@ -527,12 +527,13 @@
1.4 }
1.5
1.6 static inline ArrayMap *
1.7 -BuildArrayMap(Zone *zone, Type *type)
1.8 +BuildArrayMap(Zone *zone, Handle<Type> type)
1.9 {
1.10 // :TODO: use local
1.11 - ArrayMap *contained = NULL;
1.12 + Local<ArrayMap> contained(zone);
1.13 if (type->levels() > 1) {
1.14 - contained = BuildArrayMap(zone, type->contained());
1.15 + Local<Type> containedType(zone, type->contained());
1.16 + contained = BuildArrayMap(zone, containedType);
1.17 if (!contained)
1.18 return NULL;
1.19 }
1.20 @@ -543,12 +544,13 @@
1.21 void
1.22 BytecodeCompiler::visit(StringLiteral *node)
1.23 {
1.24 - // :TODO: use Local
1.25 - ArrayMap *map = BuildArrayMap(ZONE(), node->type());
1.26 + // :TODO: remove this Local
1.27 + Local<Type> type(ZONE(), node->type());
1.28 + Local<ArrayMap> map(ZONE(), BuildArrayMap(ZONE(), type));
1.29 if (!map)
1.30 return;
1.31
1.32 - Array *array = Array::New(ZONE(), map, node->string()->length(), Heap::Tenure_Old);
1.33 + Local<Array> array(ZONE(), Array::New(ZONE(), map, node->string()->length(), Heap::Tenure_Old));
1.34 if (!array)
1.35 return;
1.36