jitcraft/BytecodeCompiler.cpp
changeset 27 28697d267222
parent 26 a48382113da6
child 28 a9665857cfd5
     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