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

Side by Side Diff: chrome/browser/private_working_set_snapshot_win.cc

Issue 1513043002: clang/win: Let remaining chromium_code targets build with -Wextra. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 5 years 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/private_working_set_snapshot.h" 5 #include "chrome/browser/private_working_set_snapshot.h"
6 6
7 #include <pdh.h> 7 #include <pdh.h>
8 #include <pdhmsg.h> 8 #include <pdhmsg.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 if (PdhCollectQueryData(query_handle_.Get()) != ERROR_SUCCESS) 108 if (PdhCollectQueryData(query_handle_.Get()) != ERROR_SUCCESS)
109 return; 109 return;
110 110
111 for (auto& counter_pair : counter_pairs_) { 111 for (auto& counter_pair : counter_pairs_) {
112 // Find out how much space is required for the two counter arrays. 112 // Find out how much space is required for the two counter arrays.
113 // A return code of PDH_MORE_DATA indicates that we should call again with 113 // A return code of PDH_MORE_DATA indicates that we should call again with
114 // the buffer size returned. 114 // the buffer size returned.
115 DWORD buffer_size1 = 0; 115 DWORD buffer_size1 = 0;
116 DWORD item_count1 = 0; 116 DWORD item_count1 = 0;
117 // Process IDs should be retrieved as PDH_FMT_LONG 117 // Process IDs should be retrieved as PDH_FMT_LONG
118 if (PdhGetFormattedCounterArray(counter_pair.process_id_handle, 118 if (PdhGetFormattedCounterArray(
119 PDH_FMT_LONG, &buffer_size1, &item_count1, 119 counter_pair.process_id_handle, PDH_FMT_LONG, &buffer_size1,
120 nullptr) != PDH_MORE_DATA) 120 &item_count1, nullptr) != static_cast<PDH_STATUS>(PDH_MORE_DATA))
121 continue; 121 continue;
122 if (buffer_size1 == 0 || item_count1 == 0) 122 if (buffer_size1 == 0 || item_count1 == 0)
123 continue; 123 continue;
124 124
125 DWORD buffer_size2 = 0; 125 DWORD buffer_size2 = 0;
126 DWORD item_count2 = 0; 126 DWORD item_count2 = 0;
127 // Working sets should be retrieved as PDH_FMT_LARGE (LONGLONG) 127 // Working sets should be retrieved as PDH_FMT_LARGE (LONGLONG)
128 // Note that if this second call to PdhGetFormattedCounterArray with the 128 // Note that if this second call to PdhGetFormattedCounterArray with the
129 // buffer size and count variables being zero is omitted then the PID and 129 // buffer size and count variables being zero is omitted then the PID and
130 // working-set results are not reliably correlated. 130 // working-set results are not reliably correlated.
131 if (PdhGetFormattedCounterArray(counter_pair.private_ws_handle, 131 if (PdhGetFormattedCounterArray(
132 PDH_FMT_LARGE, &buffer_size2, &item_count2, 132 counter_pair.private_ws_handle, PDH_FMT_LARGE, &buffer_size2,
133 nullptr) != PDH_MORE_DATA) 133 &item_count2, nullptr) != static_cast<PDH_STATUS>(PDH_MORE_DATA))
134 continue; 134 continue;
135 135
136 // It is not clear whether Pdh guarantees that the two counters in the same 136 // It is not clear whether Pdh guarantees that the two counters in the same
137 // query will execute atomically - if they will see the same set of 137 // query will execute atomically - if they will see the same set of
138 // processes. If they do not then the correspondence between "ID Process" 138 // processes. If they do not then the correspondence between "ID Process"
139 // and "Working Set - Private" is lost and we have to discard these results. 139 // and "Working Set - Private" is lost and we have to discard these results.
140 // In testing these values have always matched. If this check fails then 140 // In testing these values have always matched. If this check fails then
141 // the old per-process memory calculations will be used instead. 141 // the old per-process memory calculations will be used instead.
142 if (buffer_size1 != buffer_size2 || item_count1 != item_count2) 142 if (buffer_size1 != buffer_size2 || item_count1 != item_count2)
143 continue; 143 continue;
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 size_t PrivateWorkingSetSnapshot::GetPrivateWorkingSet( 182 size_t PrivateWorkingSetSnapshot::GetPrivateWorkingSet(
183 base::ProcessId process_id) const { 183 base::ProcessId process_id) const {
184 // Do a binary search for the requested process ID and return the working set 184 // Do a binary search for the requested process ID and return the working set
185 // if found. 185 // if found.
186 auto p = std::lower_bound(records_.begin(), records_.end(), process_id); 186 auto p = std::lower_bound(records_.begin(), records_.end(), process_id);
187 if (p != records_.end() && p->process_id == process_id) 187 if (p != records_.end() && p->process_id == process_id)
188 return p->private_ws; 188 return p->private_ws;
189 189
190 return 0; 190 return 0;
191 } 191 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698