Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(191)

Unified Diff: third_party/crashpad/crashpad/snapshot/mac/process_types/custom.cc

Issue 2679313002: Update Crashpad to 88442dd5788bf7836ab013939cca4a4683560cb0 (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698