diff -r 2b8512340180 -r bbb498ccb4ac src/ObjectVisitor.h --- a/src/ObjectVisitor.h Sat Dec 22 19:48:43 2012 -0800 +++ b/src/ObjectVisitor.h Sat Dec 22 23:18:57 2012 -0800 @@ -46,10 +46,14 @@ } size_t iterateType(Object *obj) { - visitField(obj, Type::offsetOfName()); return sizeof(Type); } + size_t iterateEnumType(Object *obj) { + visitField(obj, EnumType::offsetOfName()); + return sizeof(EnumType); + } + size_t iterateReferenceType(Object *obj) { iterateType(obj); visitField(obj, ReferenceType::offsetOfContained()); @@ -67,6 +71,7 @@ iterateType(obj); visitField(obj, StructType::offsetOfFields()); visitField(obj, StructType::offsetOfNewMap()); + visitField(obj, StructType::offsetOfName()); return sizeof(StructType); } @@ -75,6 +80,7 @@ visitField(obj, FunctionType::offsetOfReturnType()); visitField(obj, FunctionType::offsetOfParameters()); visitField(obj, FunctionType::offsetOfDefaults()); + visitField(obj, FunctionType::offsetOfName()); return sizeof(FunctionType); } @@ -207,6 +213,9 @@ case MapKind_ArrayType: return iterateArrayType(obj); + case MapKind_EnumType: + return iterateEnumType(obj); + case MapKind_FunctionType: return iterateFunctionType(obj); @@ -293,6 +302,9 @@ case MapKind_ArrayType: return sizeof(ArrayType); + case MapKind_EnumType: + return sizeof(EnumType); + case MapKind_FunctionType: return sizeof(FunctionType);