Chromium Code Reviews| Index: base/trace_event/process_memory_dump.cc |
| diff --git a/base/trace_event/process_memory_dump.cc b/base/trace_event/process_memory_dump.cc |
| index 07142118d3e0e1f03ebf310573c99e3423ac5531..63d1340e42e3222c3ee99e92a7e676279cffb8a1 100644 |
| --- a/base/trace_event/process_memory_dump.cc |
| +++ b/base/trace_event/process_memory_dump.cc |
| @@ -18,7 +18,7 @@ |
| #include "build/build_config.h" |
| #if defined(OS_IOS) |
| -#include <sys/sysctl.h> |
| +#include <mach/vm_page_size.h> |
| #endif |
| #if defined(OS_POSIX) |
| @@ -57,19 +57,13 @@ bool ProcessMemoryDump::is_black_hole_non_fatal_for_testing_ = false; |
| size_t ProcessMemoryDump::GetSystemPageSize() { |
| #if defined(OS_IOS) |
| // On iOS, getpagesize() returns the user page sizes, but for allocating |
| - // arrays for mincore(), kernel page sizes is needed. sysctlbyname() should |
| - // be used for this. Refer to crbug.com/542671 and Apple rdar://23651782 |
| - int pagesize; |
| - size_t pagesize_len; |
| - int status = sysctlbyname("vm.pagesize", NULL, &pagesize_len, nullptr, 0); |
| - if (!status && pagesize_len == sizeof(pagesize)) { |
| - if (!sysctlbyname("vm.pagesize", &pagesize, &pagesize_len, nullptr, 0)) |
| - return pagesize; |
| - } |
| - LOG(ERROR) << "sysctlbyname(\"vm.pagesize\") failed."; |
| - // Falls back to getpagesize() although it may be wrong in certain cases. |
| -#endif // defined(OS_IOS) |
| + // arrays for mincore(), kernel page sizes is needed. Use vm_kernel_page_size |
| + // as recommended by Apple, https://forums.developer.apple.com/thread/47532/. |
| + // Refer to http://crbug.com/542671 and Apple rdar://23651782 |
| + return vm_kernel_page_size; |
| +#else |
| return base::GetPageSize(); |
|
Primiano Tucci (use gerrit)
2016/09/26 14:24:05
I liked this the old way, i.e.
#if special case
..
sdefresne
2016/09/26 14:44:36
Won't this cause a warning by the compiler about u
|
| +#endif // defined(OS_IOS) |
| } |
| // static |