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

Side by Side Diff: base/command_line.cc

Issue 7866036: micro optimize CommandLine.GetSwitchPrefixLength (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: ' Created 9 years, 3 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
« no previous file with comments | « no previous file | base/command_line_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/command_line.h" 5 #include "base/command_line.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <ostream> 8 #include <ostream>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 19 matching lines...) Expand all
30 #if defined(OS_WIN) 30 #if defined(OS_WIN)
31 const CommandLine::CharType* const kSwitchPrefixes[] = {L"--", L"-", L"/"}; 31 const CommandLine::CharType* const kSwitchPrefixes[] = {L"--", L"-", L"/"};
32 #elif defined(OS_POSIX) 32 #elif defined(OS_POSIX)
33 // Unixes don't use slash as a switch. 33 // Unixes don't use slash as a switch.
34 const CommandLine::CharType* const kSwitchPrefixes[] = {"--", "-"}; 34 const CommandLine::CharType* const kSwitchPrefixes[] = {"--", "-"};
35 #endif 35 #endif
36 36
37 size_t GetSwitchPrefixLength(const CommandLine::StringType& string) { 37 size_t GetSwitchPrefixLength(const CommandLine::StringType& string) {
38 for (size_t i = 0; i < arraysize(kSwitchPrefixes); ++i) { 38 for (size_t i = 0; i < arraysize(kSwitchPrefixes); ++i) {
39 CommandLine::StringType prefix(kSwitchPrefixes[i]); 39 CommandLine::StringType prefix(kSwitchPrefixes[i]);
40 if (string.find(prefix) == 0) 40 if (string.compare(0, prefix.length(), prefix) == 0)
41 return prefix.length(); 41 return prefix.length();
42 } 42 }
43 return 0; 43 return 0;
44 } 44 }
45 45
46 // Fills in |switch_string| and |switch_value| if |string| is a switch. 46 // Fills in |switch_string| and |switch_value| if |string| is a switch.
47 // This will preserve the input switch prefix in the output |switch_string|. 47 // This will preserve the input switch prefix in the output |switch_string|.
48 bool IsSwitch(const CommandLine::StringType& string, 48 bool IsSwitch(const CommandLine::StringType& string,
49 CommandLine::StringType* switch_string, 49 CommandLine::StringType* switch_string,
50 CommandLine::StringType* switch_value) { 50 CommandLine::StringType* switch_value) {
(...skipping 342 matching lines...) Expand 10 before | Expand all | Expand 10 after
393 int num_args = 0; 393 int num_args = 0;
394 wchar_t** args = NULL; 394 wchar_t** args = NULL;
395 args = ::CommandLineToArgvW(command_line_string.c_str(), &num_args); 395 args = ::CommandLineToArgvW(command_line_string.c_str(), &num_args);
396 396
397 PLOG_IF(FATAL, !args) << "CommandLineToArgvW failed on command line: " << 397 PLOG_IF(FATAL, !args) << "CommandLineToArgvW failed on command line: " <<
398 command_line; 398 command_line;
399 InitFromArgv(num_args, args); 399 InitFromArgv(num_args, args);
400 LocalFree(args); 400 LocalFree(args);
401 } 401 }
402 #endif 402 #endif
OLDNEW
« no previous file with comments | « no previous file | base/command_line_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698