Index: base/mac/mac_util.h |
diff --git a/base/mac/mac_util.h b/base/mac/mac_util.h |
index 746c3da7a19a0bde1ce37d82363656b609e28617..d0173c03cdc941b9352df0f2453491b54c2f823c 100644 |
--- a/base/mac/mac_util.h |
+++ b/base/mac/mac_util.h |
@@ -120,57 +120,43 @@ BASE_EXPORT int MacOSXMinorVersion(); |
// "AtMost" variants to those that check for a specific version, unless you |
// know for sure that you need to check for a specific version. |
-#define _DEFINE_IS_OS_FUNCS(V, ID) \ |
- inline bool IsOS10_##V() { \ |
- return MAC_OS_X_VERSION_MIN_REQUIRED <= ID && \ |
- internal::MacOSXMinorVersion() == V; \ |
- } \ |
- inline bool IsAtLeastOS10_##V() { \ |
- return MAC_OS_X_VERSION_MIN_REQUIRED >= ID || \ |
- internal::MacOSXMinorVersion() >= V; \ |
- } \ |
- inline bool IsAtMostOS10_##V() { \ |
- return MAC_OS_X_VERSION_MIN_REQUIRED <= ID && \ |
- internal::MacOSXMinorVersion() <= V; \ |
+#define DEFINE_IS_OS_FUNCS(V, TEST_DEPLOYMENT_TARGET) \ |
+ inline bool IsOS10_##V() { \ |
+ TEST_DEPLOYMENT_TARGET(>, V, false) \ |
+ return internal::MacOSXMinorVersion() == V; \ |
+ } \ |
+ inline bool IsAtLeastOS10_##V() { \ |
+ TEST_DEPLOYMENT_TARGET(>=, V, true) \ |
+ return internal::MacOSXMinorVersion() >= V; \ |
+ } \ |
+ inline bool IsAtMostOS10_##V() { \ |
+ TEST_DEPLOYMENT_TARGET(>, V, false) \ |
+ return internal::MacOSXMinorVersion() <= V; \ |
} |
-// Apple adopted this format in 10.10: 10.11.0 becomes 101100 |
-#define OS_X_VERSION_ID(V) 10##V##00 |
-#define DEFINE_IS_OS_FUNCS(V) _DEFINE_IS_OS_FUNCS(V, OS_X_VERSION_ID(V)) |
+#define TEST_DEPLOYMENT_TARGET(OP, V, RET) \ |
+ if (MAC_OS_X_VERSION_MIN_REQUIRED OP MAC_OS_X_VERSION_10_##V) \ |
+ return RET; |
+#define IGNORE_DEPLOYMENT_TARGET(OP, V, RET) |
-// Sanity check that our computed IDs match the SDK |
-#define STR(S) _STR(S) |
-#define _STR(S) #S |
-#define ASSERT_OS_ID_CONSTANT(V) \ |
- static_assert(OS_X_VERSION_ID(V) == MAC_OS_X_VERSION_10_##V, \ |
- "ID for macOS 10." #V \ |
- " (" STR(OS_X_VERSION_ID(V)) ") doesn't match the SDK (" STR( \ |
- MAC_OS_X_VERSION_10_##V) ")."); |
+DEFINE_IS_OS_FUNCS(9, TEST_DEPLOYMENT_TARGET) |
+DEFINE_IS_OS_FUNCS(10, TEST_DEPLOYMENT_TARGET) |
-// 10.9 uses an old format. |
-// TODO(sdy): Ditch, most callers are better served by !IsAtLeastOS10_10(). |
-_DEFINE_IS_OS_FUNCS(9, MAC_OS_X_VERSION_10_9) |
- |
-DEFINE_IS_OS_FUNCS(10) |
-ASSERT_OS_ID_CONSTANT(10) |
- |
-DEFINE_IS_OS_FUNCS(11) |
#ifdef MAC_OS_X_VERSION_10_11 |
-ASSERT_OS_ID_CONSTANT(11) |
+DEFINE_IS_OS_FUNCS(11, TEST_DEPLOYMENT_TARGET) |
+#else |
+DEFINE_IS_OS_FUNCS(11, IGNORE_DEPLOYMENT_TARGET) |
#endif |
-DEFINE_IS_OS_FUNCS(12) |
#ifdef MAC_OS_X_VERSION_10_12 |
-ASSERT_OS_ID_CONSTANT(12) |
+DEFINE_IS_OS_FUNCS(12, TEST_DEPLOYMENT_TARGET) |
+#else |
+DEFINE_IS_OS_FUNCS(12, IGNORE_DEPLOYMENT_TARGET) |
#endif |
-#undef ASSERT_OS_ID_CONSTANT |
-#undef _STR |
-#undef STR |
- |
+#undef IGNORE_DEPLOYMENT_TARGET |
+#undef TEST_DEPLOYMENT_TARGET |
#undef DEFINE_IS_OS_FUNCS |
-#undef MAC_OS_X_VERISON_ID |
-#undef _DEFINE_IS_OS_FUNCS |
// This should be infrequently used. It only makes sense to use this to avoid |
// codepaths that are very likely to break on future (unreleased, untested, |