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

Unified Diff: webrtc/base/macutils.cc

Issue 2391633004: Remove deprecated Gestalt methods. (Closed)
Patch Set: Created 4 years, 2 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
« no previous file with comments | « webrtc/base/BUILD.gn ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/base/macutils.cc
diff --git a/webrtc/base/macutils.cc b/webrtc/base/macutils.cc
index c05526affb73fb36d0f8f28113ebc951849b7f98..eb69b73c8902178de447c09c652d63d76c34de76 100644
--- a/webrtc/base/macutils.cc
+++ b/webrtc/base/macutils.cc
@@ -8,10 +8,11 @@
* be found in the AUTHORS file in the root of the source tree.
*/
+#include <cstring>
#include <memory>
#include <sstream>
-#include <CoreServices/CoreServices.h>
+#include <sys/utsname.h>
#include "webrtc/base/common.h"
#include "webrtc/base/logging.h"
@@ -70,34 +71,25 @@ void DecodeFourChar(UInt32 fc, std::string* out) {
out->append(ss.str());
}
-static bool GetGestalt(OSType ostype, int* value) {
- ASSERT(NULL != value);
- SInt32 native_value;
- OSStatus result = Gestalt(ostype, &native_value);
- if (noErr == result) {
- *value = native_value;
- return true;
- }
- std::string str;
- DecodeFourChar(ostype, &str);
- LOG_E(LS_ERROR, OS, result) << "Gestalt(" << str << ")";
- return false;
-}
-
static bool GetOSVersion(int* major, int* minor, int* bugfix) {
ASSERT(major && minor && bugfix);
- if (!GetGestalt(gestaltSystemVersion, major)) {
+ struct utsname uname_info;
+ if (uname(&uname_info) != 0)
return false;
- }
- if (*major < 0x1040) {
- *bugfix = *major & 0xF;
- *minor = (*major >> 4) & 0xF;
- *major = (*major >> 8);
- return true;
- }
- return GetGestalt(gestaltSystemVersionMajor, major) &&
- GetGestalt(gestaltSystemVersionMinor, minor) &&
- GetGestalt(gestaltSystemVersionBugFix, bugfix);
+
+ if (strcmp(uname_info.sysname, "Darwin") != 0)
+ return false;
+ *major = 10;
+
+ // The market version of macOS is always 4 lower than the internal version.
kthelgason 2016/10/05 18:23:26 This should not be relied upon. Though there has b
erikchen 2016/10/05 20:16:35 -[NSProcessInfo operatingSystemVersion] isn't avai
Sergey Ulanov 2016/10/05 23:04:45 Maybe add CHECK(atoi(uname_info.release) >= 6) her
erikchen 2016/10/05 23:48:43 Done.
+ *minor = atoi(uname_info.release) - 4;
+
+ char delimiter = '.';
+ const char* dot = strchr(uname_info.release, &delimiter);
Sergey Ulanov 2016/10/05 23:04:45 strchr() takes char as the second argument, but yo
erikchen 2016/10/05 23:48:43 webrtc uses an inlined strchr that has a different
Sergey Ulanov 2016/10/07 00:08:46 This is a wchar_t version, which I don't think is
erikchen 2016/10/07 00:31:02 ah, yup, switched to ::strchr().
+ if (!dot)
+ return false;
+ *bugfix = atoi(dot + 1);
+ return true;
}
MacOSVersionName GetOSVersionName() {
« no previous file with comments | « webrtc/base/BUILD.gn ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698