Re-allow arrays to nest.
authorDavid Anderson <dvander@alliedmods.net>
Sun Aug 05 00:49:31 2012 -0700 (2012-08-05)
changeset 1560d28dc5af6c7
parent 155 7926a7921fa3
child 157 b760e8cb29a8
Re-allow arrays to nest.
src/BytecodeCompiler.cpp
src/Interpreter.cpp
     1.1 --- a/src/BytecodeCompiler.cpp	Sun Aug 05 00:45:06 2012 -0700
     1.2 +++ b/src/BytecodeCompiler.cpp	Sun Aug 05 00:49:31 2012 -0700
     1.3 @@ -744,6 +744,13 @@
     1.4      if (!map)
     1.5          return NULL;
     1.6  
     1.7 +    // Ensure the inner type has an array map if needed.
     1.8 +    if (type->contained()->isArray()) {
     1.9 +        Local<Type> contained(zone, type->contained());
    1.10 +        if (!BuildArrayMap(zone, contained))
    1.11 +            return NULL;
    1.12 +    }
    1.13 +
    1.14      type->setNewMap(map);
    1.15      return map;
    1.16  }
     2.1 --- a/src/Interpreter.cpp	Sun Aug 05 00:45:06 2012 -0700
     2.2 +++ b/src/Interpreter.cpp	Sun Aug 05 00:49:31 2012 -0700
     2.3 @@ -109,8 +109,8 @@
     2.4                  return false;
     2.5          }
     2.6      } else {
     2.7 -        assert(source->type()->pod() == dest->type()->pod());
     2.8 -        assert(source->type()->pod() == PrimitiveType_Char
     2.9 +        assert(source->type()->contained()->pod() == dest->type()->contained()->pod());
    2.10 +        assert(source->type()->contained()->pod() == PrimitiveType_Char
    2.11                 ? source->length() >= dest->length()
    2.12                 : source->length() == dest->length());
    2.13