Index: base/sys_info_mac.mm |
diff --git a/base/sys_info_mac.mm b/base/sys_info_mac.mm |
index 1141bd557768bab8eb387dd62668831edd40bd92..6dc2f22a390970571cab6cbe04890472989bbe8e 100644 |
--- a/base/sys_info_mac.mm |
+++ b/base/sys_info_mac.mm |
@@ -24,6 +24,23 @@ |
namespace base { |
+namespace { |
+ |
+// Queries sysctlbyname() for the given key and returns the value from the |
+// system or the empty string on failure. |
+std::string GetSysctlValue(const char* key_name) { |
+ char value[256]; |
+ size_t len = arraysize(value); |
+ if (sysctlbyname(key_name, &value, &len, nullptr, 0) == 0) { |
+ DCHECK_GE(len, 1u); |
+ DCHECK_EQ('\0', value[len - 1]); |
+ return std::string(value, len - 1); |
+ } |
+ return std::string(); |
+} |
+ |
+} // namespace |
+ |
// static |
std::string SysInfo::OperatingSystemName() { |
return "Mac OS X"; |
@@ -94,19 +111,12 @@ int64_t SysInfo::AmountOfAvailablePhysicalMemory() { |
// static |
std::string SysInfo::CPUModelName() { |
- char name[256]; |
- size_t len = arraysize(name); |
- if (sysctlbyname("machdep.cpu.brand_string", &name, &len, NULL, 0) == 0) |
- return name; |
- return std::string(); |
+ return GetSysctlValue("machdep.cpu.brand_string"); |
} |
+// static |
std::string SysInfo::HardwareModelName() { |
- char model[256]; |
- size_t len = sizeof(model); |
- if (sysctlbyname("hw.model", model, &len, NULL, 0) == 0) |
- return std::string(model, 0, len); |
- return std::string(); |
+ return GetSysctlValue("hw.model"); |
} |
} // namespace base |