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

Side by Side Diff: base/process_util_win.cc

Issue 11961021: base: Convert scoped_arrays to the new scoped_ptr style. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: revert callback changes Created 7 years, 11 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "base/process_util.h" 5 #include "base/process_util.h"
6 6
7 #include <fcntl.h> 7 #include <fcntl.h>
8 #include <io.h> 8 #include <io.h>
9 #include <windows.h> 9 #include <windows.h>
10 #include <userenv.h> 10 #include <userenv.h>
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 return false; 245 return false;
246 246
247 win::ScopedHandle scoped_process_token(process_token); 247 win::ScopedHandle scoped_process_token(process_token);
248 248
249 DWORD token_info_length = 0; 249 DWORD token_info_length = 0;
250 if (GetTokenInformation(process_token, TokenIntegrityLevel, NULL, 0, 250 if (GetTokenInformation(process_token, TokenIntegrityLevel, NULL, 0,
251 &token_info_length) || 251 &token_info_length) ||
252 GetLastError() != ERROR_INSUFFICIENT_BUFFER) 252 GetLastError() != ERROR_INSUFFICIENT_BUFFER)
253 return false; 253 return false;
254 254
255 scoped_array<char> token_label_bytes(new char[token_info_length]); 255 scoped_ptr<char[]> token_label_bytes(new char[token_info_length]);
256 if (!token_label_bytes.get()) 256 if (!token_label_bytes.get())
257 return false; 257 return false;
258 258
259 TOKEN_MANDATORY_LABEL* token_label = 259 TOKEN_MANDATORY_LABEL* token_label =
260 reinterpret_cast<TOKEN_MANDATORY_LABEL*>(token_label_bytes.get()); 260 reinterpret_cast<TOKEN_MANDATORY_LABEL*>(token_label_bytes.get());
261 if (!token_label) 261 if (!token_label)
262 return false; 262 return false;
263 263
264 if (!GetTokenInformation(process_token, TokenIntegrityLevel, token_label, 264 if (!GetTokenInformation(process_token, TokenIntegrityLevel, token_label,
265 token_info_length, &token_info_length)) 265 token_info_length, &token_info_length))
(...skipping 648 matching lines...) Expand 10 before | Expand all | Expand 10 after
914 if (!heap_set) 914 if (!heap_set)
915 return true; 915 return true;
916 916
917 unsigned number_heaps = GetProcessHeaps(0, NULL); 917 unsigned number_heaps = GetProcessHeaps(0, NULL);
918 if (!number_heaps) 918 if (!number_heaps)
919 return false; 919 return false;
920 920
921 // Gives us some extra space in the array in case a thread is creating heaps 921 // Gives us some extra space in the array in case a thread is creating heaps
922 // at the same time we're querying them. 922 // at the same time we're querying them.
923 static const int MARGIN = 8; 923 static const int MARGIN = 8;
924 scoped_array<HANDLE> heaps(new HANDLE[number_heaps + MARGIN]); 924 scoped_ptr<HANDLE[]> heaps(new HANDLE[number_heaps + MARGIN]);
925 number_heaps = GetProcessHeaps(number_heaps + MARGIN, heaps.get()); 925 number_heaps = GetProcessHeaps(number_heaps + MARGIN, heaps.get());
926 if (!number_heaps) 926 if (!number_heaps)
927 return false; 927 return false;
928 928
929 for (unsigned i = 0; i < number_heaps; ++i) { 929 for (unsigned i = 0; i < number_heaps; ++i) {
930 ULONG lfh_flag = 2; 930 ULONG lfh_flag = 2;
931 // Don't bother with the result code. It may fails on heaps that have the 931 // Don't bother with the result code. It may fails on heaps that have the
932 // HEAP_NO_SERIALIZE flag. This is expected and not a problem at all. 932 // HEAP_NO_SERIALIZE flag. This is expected and not a problem at all.
933 heap_set(heaps[i], 933 heap_set(heaps[i],
934 HeapCompatibilityInformation, 934 HeapCompatibilityInformation,
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
984 984
985 PERFORMANCE_INFORMATION info; 985 PERFORMANCE_INFORMATION info;
986 if (!InternalGetPerformanceInfo(&info, sizeof(info))) { 986 if (!InternalGetPerformanceInfo(&info, sizeof(info))) {
987 DLOG(ERROR) << "Failed to fetch internal performance info."; 987 DLOG(ERROR) << "Failed to fetch internal performance info.";
988 return 0; 988 return 0;
989 } 989 }
990 return (info.CommitTotal * system_info.dwPageSize) / 1024; 990 return (info.CommitTotal * system_info.dwPageSize) / 1024;
991 } 991 }
992 992
993 } // namespace base 993 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698