src/ObjectVisitor.h
changeset 209 5cbec15fadfe
parent 195 c1ba166f3fc4
child 222 0cde1379b29f
     1.1 --- a/src/ObjectVisitor.h	Sat Nov 17 22:02:08 2012 -0800
     1.2 +++ b/src/ObjectVisitor.h	Sat Nov 17 23:11:38 2012 -0800
     1.3 @@ -46,22 +46,26 @@
     1.4      }
     1.5  
     1.6      size_t iterateType(Object *obj) {
     1.7 -        visitField(obj, Type::offsetOfContained());
     1.8          visitField(obj, Type::offsetOfName());
     1.9          return sizeof(Type);
    1.10      }
    1.11  
    1.12 +    size_t iterateArrayType(Object *obj) {
    1.13 +        iterateType(obj);
    1.14 +        visitField(obj, ArrayType::offsetOfContained());
    1.15 +        visitField(obj, ArrayType::offsetOfNewMap());
    1.16 +        return sizeof(ArrayType);
    1.17 +    }
    1.18 +
    1.19      size_t iterateStructType(Object *obj) {
    1.20 -        visitField(obj, Type::offsetOfContained());
    1.21 -        visitField(obj, Type::offsetOfName());
    1.22 +        iterateType(obj);
    1.23          visitField(obj, StructType::offsetOfFields());
    1.24          visitField(obj, StructType::offsetOfNewMap());
    1.25          return sizeof(StructType);
    1.26      }
    1.27  
    1.28      size_t iterateFunctionType(Object *obj) {
    1.29 -        visitField(obj, Type::offsetOfContained());
    1.30 -        visitField(obj, Type::offsetOfName());
    1.31 +        iterateType(obj);
    1.32          visitField(obj, FunctionType::offsetOfReturnType());
    1.33          visitField(obj, FunctionType::offsetOfParameters());      
    1.34          visitField(obj, FunctionType::offsetOfDefaults());
    1.35 @@ -191,6 +195,9 @@
    1.36            case MapKind_Type:
    1.37              return iterateType(obj);
    1.38  
    1.39 +          case MapKind_ArrayType:
    1.40 +            return iterateArrayType(obj);
    1.41 +
    1.42            case MapKind_FunctionType:
    1.43              return iterateFunctionType(obj);
    1.44  
    1.45 @@ -271,6 +278,9 @@
    1.46        case MapKind_Type:
    1.47          return sizeof(Type);
    1.48  
    1.49 +      case MapKind_ArrayType:
    1.50 +        return sizeof(ArrayType);
    1.51 +
    1.52        case MapKind_FunctionType:
    1.53          return sizeof(FunctionType);
    1.54