diff options
author | Robert Griebl <[email protected]> | 2025-02-26 17:51:12 +0100 |
---|---|---|
committer | Robert Griebl <[email protected]> | 2025-06-06 10:53:29 +0000 |
commit | 94f897a80d30aa614d64fd8f0a8ae7e01a182829 (patch) | |
tree | 8a989d524141051d0ab0a2926d25c99157f40d6c /src | |
parent | ccd4c54292c37fd7b628a88cb8aea0754d74d0b8 (diff) |
Change-Id: I0bd8ca5145cd82e912e0e2971ea304bd0bc4b521
Pick-to: 6.10
Reviewed-by: Bernd Weimer <[email protected]>
Diffstat (limited to 'src')
-rw-r--r-- | src/common-lib/utilities.cpp | 14 | ||||
-rw-r--r-- | src/monitor-lib/processreader.cpp | 4 | ||||
-rw-r--r-- | src/monitor-lib/systemreader.cpp | 10 | ||||
-rw-r--r-- | src/shared-main-lib/startuptimer.cpp | 44 |
4 files changed, 31 insertions, 41 deletions
diff --git a/src/common-lib/utilities.cpp b/src/common-lib/utilities.cpp index 78c9f50b..7f80f15f 100644 --- a/src/common-lib/utilities.cpp +++ b/src/common-lib/utilities.cpp @@ -138,16 +138,12 @@ qint64 getParentPid(qint64 pid) } #elif defined(Q_OS_MACOS) || defined(Q_OS_IOS) - int mibNames[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, (pid_t) pid }; - size_t procInfoSize; - - if (sysctl(mibNames, sizeof(mibNames) / sizeof(mibNames[0]), nullptr, &procInfoSize, nullptr, 0) == 0) { - kinfo_proc *procInfo = (kinfo_proc *) malloc(procInfoSize); + std::array<int, 4> mib { CTL_KERN, KERN_PROC, KERN_PROC_PID, (pid_t) pid }; + kinfo_proc procInfo; + size_t procInfoSize = sizeof(procInfo); - if (sysctl(mibNames, sizeof(mibNames) / sizeof(mibNames[0]), procInfo, &procInfoSize, nullptr, 0) == 0) - ppid = procInfo->kp_eproc.e_ppid; - free(procInfo); - } + if (sysctl(mib.data(), mib.size(), &procInfo, &procInfoSize, nullptr, 0) == 0) + ppid = procInfo.kp_eproc.e_ppid; #elif defined(Q_OS_WIN) PROCESSENTRY32 pe32; diff --git a/src/monitor-lib/processreader.cpp b/src/monitor-lib/processreader.cpp index 4c9c6f08..3fe10d72 100644 --- a/src/monitor-lib/processreader.cpp +++ b/src/monitor-lib/processreader.cpp @@ -287,8 +287,8 @@ bool ProcessReader::readMemory(Memory &mem) struct task_basic_info t_info; mach_msg_type_number_t t_info_count = TASK_BASIC_INFO_COUNT; - if (KERN_SUCCESS != task_info(mach_task_self(), TASK_BASIC_INFO, - reinterpret_cast<task_info_t>(&t_info), &t_info_count)) { + if (task_info(mach_task_self(), TASK_BASIC_INFO, + reinterpret_cast<task_info_t>(&t_info), &t_info_count) != 0) { qCWarning(LogSystem) << "Could not read memory data"; return false; } diff --git a/src/monitor-lib/systemreader.cpp b/src/monitor-lib/systemreader.cpp index c0ecedf1..6d8ed647 100644 --- a/src/monitor-lib/systemreader.cpp +++ b/src/monitor-lib/systemreader.cpp @@ -657,7 +657,7 @@ qreal CpuReader::readLoadValue() if (host_processor_info(mach_host_self(), PROCESSOR_CPU_LOAD_INFO, &cpuCount, reinterpret_cast<processor_info_array_t *>(&cpuLoadInfo), - &cpuLoadInfoCount) == KERN_SUCCESS) { + &cpuLoadInfoCount) == 0) { qint64 idle = 0, total = 0; for (natural_t i = 0; i < cpuCount; ++i) { @@ -685,18 +685,18 @@ int MemoryReader::s_pageSize = 0; MemoryReader::MemoryReader() { if (!s_totalValue) { - int mib[2] = { CTL_HW, HW_MEMSIZE }; + std::array<int, 2> mib { CTL_HW, HW_MEMSIZE }; int64_t hwMem; size_t hwMemSize = sizeof(hwMem); - if (sysctl(mib, sizeof(mib) / sizeof(*mib), &hwMem, &hwMemSize, nullptr, 0) == KERN_SUCCESS) + if (sysctl(mib.data(), mib.size(), &hwMem, &hwMemSize, nullptr, 0) == 0) s_totalValue = quint64(hwMem); mib[1] = HW_PAGESIZE; int hwPageSize; size_t hwPageSizeSize = sizeof(hwPageSize); - if (sysctl(mib, sizeof(mib) / sizeof(*mib), &hwPageSize, &hwPageSizeSize, nullptr, 0) == KERN_SUCCESS) + if (sysctl(mib.data(), mib.size(), &hwPageSize, &hwPageSizeSize, nullptr, 0) == 0) s_pageSize = hwPageSize; } } @@ -707,7 +707,7 @@ quint64 MemoryReader::readUsedValue() const mach_msg_type_number_t vmStatCount = HOST_VM_INFO64_COUNT; if (host_statistics64(mach_host_self(), HOST_VM_INFO64, - reinterpret_cast<host_info64_t>(&vmStat), &vmStatCount) == KERN_SUCCESS) { + reinterpret_cast<host_info64_t>(&vmStat), &vmStatCount) == 0) { quint64 app = vmStat.internal_page_count; quint64 compressed = vmStat.compressor_page_count; quint64 wired = vmStat.wire_count; diff --git a/src/shared-main-lib/startuptimer.cpp b/src/shared-main-lib/startuptimer.cpp index d3839e87..d8bc7c04 100644 --- a/src/shared-main-lib/startuptimer.cpp +++ b/src/shared-main-lib/startuptimer.cpp @@ -251,37 +251,31 @@ StartupTimer::StartupTimer() } #elif defined(Q_OS_MACOS) || defined(Q_OS_IOS) - int mibNames[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; - size_t procInfoSize; - - if (sysctl(mibNames, sizeof(mibNames) / sizeof(mibNames[0]), nullptr, &procInfoSize, nullptr, 0) == 0) { - kinfo_proc *procInfo = static_cast<kinfo_proc *>(malloc(procInfoSize)); - - if (sysctl(mibNames, sizeof(mibNames) / sizeof(mibNames[0]), procInfo, &procInfoSize, nullptr, 0) == 0) { - struct timeval now; - - if (gettimeofday(&now, nullptr) == 0) { - m_processCreation = (quint64(now.tv_sec) * 1000000 + quint64(now.tv_usec)) - - (quint64(procInfo->kp_proc.p_un.__p_starttime.tv_sec) * 1000000 - + quint64(procInfo->kp_proc.p_un.__p_starttime.tv_usec)); - m_initialized = true; - } - } else { - qWarning("StartupTimer: could not get kinfo_proc from kernel"); + std::array<int, 4> mib { CTL_KERN, KERN_PROC, KERN_PROC_PID, getpid() }; + kinfo_proc procInfo; + size_t procInfoSize = sizeof(procInfo); + + if (sysctl(mib.data(), mib.size(), &procInfo, &procInfoSize, nullptr, 0) == 0) { + struct timeval now; + + if (gettimeofday(&now, nullptr) == 0) { + m_processCreation = (quint64(now.tv_sec) * 1000000 + quint64(now.tv_usec)) + - (quint64(procInfo.kp_proc.p_un.__p_starttime.tv_sec) * 1000000 + + quint64(procInfo.kp_proc.p_un.__p_starttime.tv_usec)); + m_initialized = true; } - free(procInfo); - } else { - qWarning("StartupTimer: could not get size of kinfo_proc buffer"); } // Get system up time - if (m_initialized) { + if (!m_initialized) { + qWarning("StartupTimer: could not get kinfo_proc from kernel"); + } else { + std::array<int, 2> mib { CTL_KERN, KERN_BOOTTIME }; struct timeval bootTime; - size_t bootTimeLen = sizeof(bootTime); - int mibNames[2] = { CTL_KERN, KERN_BOOTTIME }; - if (sysctl(mibNames, sizeof(mibNames) / sizeof(mibNames[0]), &bootTime, &bootTimeLen, nullptr, 0) == 0 ) { + size_t bootTimeSize = sizeof(bootTime); + + if (sysctl(mib.data(), mib.size(), &bootTime, &bootTimeSize, nullptr, 0) == 0) m_systemUpTime = quint64(time(nullptr) - bootTime.tv_sec) * 1000; // we don't need more precision on macOS - } } #else |