| Index: third_party/crashpad/crashpad/snapshot/mac/process_types/custom.cc | 
| diff --git a/third_party/crashpad/crashpad/snapshot/mac/process_types/custom.cc b/third_party/crashpad/crashpad/snapshot/mac/process_types/custom.cc | 
| index 5fe92288711032626c6eaee37990f077e197bd95..33e3a7ec1b2593c4b10054a37c254b81e928689d 100644 | 
| --- a/third_party/crashpad/crashpad/snapshot/mac/process_types/custom.cc | 
| +++ b/third_party/crashpad/crashpad/snapshot/mac/process_types/custom.cc | 
| @@ -17,6 +17,8 @@ | 
| #include <string.h> | 
| #include <sys/types.h> | 
|  | 
| +#include <type_traits> | 
| + | 
| #include "base/logging.h" | 
| #include "snapshot/mac/process_types/internal.h" | 
| #include "util/mach/task_memory.h" | 
| @@ -62,46 +64,31 @@ bool ReadIntoVersioned(ProcessReader* process_reader, | 
| template <typename Traits> | 
| size_t dyld_all_image_infos<Traits>::ExpectedSizeForVersion( | 
| decltype(dyld_all_image_infos<Traits>::version) version) { | 
| -  if (version >= 14) { | 
| -    return sizeof(dyld_all_image_infos<Traits>); | 
| -  } | 
| -  if (version >= 13) { | 
| -    return offsetof(dyld_all_image_infos<Traits>, infoArrayChangeTimestamp); | 
| -  } | 
| -  if (version >= 12) { | 
| -    return offsetof(dyld_all_image_infos<Traits>, sharedCacheUUID); | 
| -  } | 
| -  if (version >= 11) { | 
| -    return offsetof(dyld_all_image_infos<Traits>, sharedCacheSlide); | 
| -  } | 
| -  if (version >= 10) { | 
| -    return offsetof(dyld_all_image_infos<Traits>, errorKind); | 
| -  } | 
| -  if (version >= 9) { | 
| -    return offsetof(dyld_all_image_infos<Traits>, initialImageCount); | 
| -  } | 
| -  if (version >= 8) { | 
| -    return offsetof(dyld_all_image_infos<Traits>, dyldAllImageInfosAddress); | 
| -  } | 
| -  if (version >= 7) { | 
| -    return offsetof(dyld_all_image_infos<Traits>, uuidArrayCount); | 
| -  } | 
| -  if (version >= 6) { | 
| -    return offsetof(dyld_all_image_infos<Traits>, systemOrderFlag); | 
| -  } | 
| -  if (version >= 5) { | 
| -    return offsetof(dyld_all_image_infos<Traits>, coreSymbolicationShmPage); | 
| -  } | 
| -  if (version >= 3) { | 
| -    return offsetof(dyld_all_image_infos<Traits>, dyldVersion); | 
| -  } | 
| -  if (version >= 2) { | 
| -    return offsetof(dyld_all_image_infos<Traits>, jitInfo); | 
| -  } | 
| -  if (version >= 1) { | 
| -    return offsetof(dyld_all_image_infos<Traits>, libSystemInitialized); | 
| -  } | 
| -  return offsetof(dyld_all_image_infos<Traits>, infoArrayCount); | 
| +  const size_t kSizeForVersion[] = { | 
| +      offsetof(dyld_all_image_infos<Traits>, infoArrayCount),  // 0 | 
| +      offsetof(dyld_all_image_infos<Traits>, libSystemInitialized),  // 1 | 
| +      offsetof(dyld_all_image_infos<Traits>, jitInfo),  // 2 | 
| +      offsetof(dyld_all_image_infos<Traits>, dyldVersion),  // 3 | 
| +      offsetof(dyld_all_image_infos<Traits>, dyldVersion),  // 4 | 
| +      offsetof(dyld_all_image_infos<Traits>, coreSymbolicationShmPage),  // 5 | 
| +      offsetof(dyld_all_image_infos<Traits>, systemOrderFlag),  // 6 | 
| +      offsetof(dyld_all_image_infos<Traits>, uuidArrayCount),  // 7 | 
| +      offsetof(dyld_all_image_infos<Traits>, dyldAllImageInfosAddress),  // 8 | 
| +      offsetof(dyld_all_image_infos<Traits>, initialImageCount),  // 9 | 
| +      offsetof(dyld_all_image_infos<Traits>, errorKind),  // 10 | 
| +      offsetof(dyld_all_image_infos<Traits>, sharedCacheSlide),  // 11 | 
| +      offsetof(dyld_all_image_infos<Traits>, sharedCacheUUID),  // 12 | 
| +      offsetof(dyld_all_image_infos<Traits>, infoArrayChangeTimestamp),  // 13 | 
| +      offsetof(dyld_all_image_infos<Traits>, end),  // 14 | 
| +  }; | 
| + | 
| +  if (version >= arraysize(kSizeForVersion)) { | 
| +    return kSizeForVersion[arraysize(kSizeForVersion) - 1]; | 
| +  } | 
| + | 
| +  static_assert(std::is_unsigned<decltype(version)>::value, | 
| +                "version must be unsigned"); | 
| +  return kSizeForVersion[version]; | 
| } | 
|  | 
| // static | 
|  |