diff -r 7c5be05296e3 -r 5cbec15fadfe src/Zone.cpp --- a/src/Zone.cpp Sat Nov 17 22:02:08 2012 -0800 +++ b/src/Zone.cpp Sat Nov 17 23:11:38 2012 -0800 @@ -74,45 +74,33 @@ if (!nativeTable_ || !nativeTable_->initialize()) return false; + MapKind maps[] = + { + MapKind_Type, + MapKind_ArrayType, + MapKind_FunctionType, + MapKind_StructType, + MapKind_FixedArray, + MapKind_ByteArray, + MapKind_Code, + MapKind_Reference, + MapKind_MetaArray, + MapKind_MetaStruct, + MapKind_MetaEnvironment, + MapKind_Module, + MapKind_Function, + MapKind_String, + MapKind_Native, + MapKind_Descriptor, + MapKind_Box, + MapKind_FreeRegion, + MapKind_EnvironmentSlotDescriptorArray + }; + maps_[MapKind_Meta] = heap_.metaMap(); - if ((maps_[MapKind_Type] = allocateMap(MapKind_Type, sizeof(Map))) == NULL) - return false; - if ((maps_[MapKind_FunctionType] = allocateMap(MapKind_FunctionType, sizeof(Map))) == NULL) - return false; - if ((maps_[MapKind_StructType] = allocateMap(MapKind_StructType, sizeof(Map))) == NULL) - return false; - if ((maps_[MapKind_FixedArray] = allocateMap(MapKind_FixedArray, sizeof(Map))) == NULL) - return false; - if ((maps_[MapKind_ByteArray] = allocateMap(MapKind_ByteArray, sizeof(Map))) == NULL) - return false; - if ((maps_[MapKind_Code] = allocateMap(MapKind_Code, sizeof(Map))) == NULL) - return false; - if ((maps_[MapKind_Reference] = allocateMap(MapKind_Reference, sizeof(Map))) == NULL) - return false; - if ((maps_[MapKind_MetaArray] = allocateMap(MapKind_MetaArray, sizeof(Map))) == NULL) - return false; - if ((maps_[MapKind_MetaStruct] = allocateMap(MapKind_MetaStruct, sizeof(Map))) == NULL) - return false; - if ((maps_[MapKind_MetaEnvironment] = allocateMap(MapKind_MetaEnvironment, sizeof(Map))) == NULL) - return false; - if ((maps_[MapKind_Module] = allocateMap(MapKind_Module, sizeof(Map))) == NULL) - return false; - if ((maps_[MapKind_Function] = allocateMap(MapKind_Function, sizeof(Map))) == NULL) - return false; - if ((maps_[MapKind_String] = allocateMap(MapKind_String, sizeof(Map))) == NULL) - return false; - if ((maps_[MapKind_Native] = allocateMap(MapKind_Native, sizeof(Map))) == NULL) - return false; - if ((maps_[MapKind_Descriptor] = allocateMap(MapKind_Descriptor, sizeof(Map))) == NULL) - return false; - if ((maps_[MapKind_Box] = allocateMap(MapKind_Box, sizeof(Map))) == NULL) - return false; - if ((maps_[MapKind_FreeRegion] = allocateMap(MapKind_FreeRegion, sizeof(Map))) == NULL) - return false; - if ((maps_[MapKind_EnvironmentSlotDescriptorArray] = - allocateMap(MapKind_EnvironmentSlotDescriptorArray, sizeof(Map))) == NULL) - { - return false; + for (size_t i = 0; i < sizeof(maps) / sizeof(maps[0]); i++) { + if ((maps_[maps[i]] = allocateMap(maps[i], sizeof(Map))) == NULL) + return false; } types_ = new TypeManager(this);