Chromium Code Reviews| Index: tools/flags/SkCommandLineFlags.h |
| diff --git a/tools/flags/SkCommandLineFlags.h b/tools/flags/SkCommandLineFlags.h |
| index 1d4f409fbf7f443d1c4ae7b5a08c56411d6bf9a2..c705948348d1d28210ade06eaeb16d8beba6d6cb 100644 |
| --- a/tools/flags/SkCommandLineFlags.h |
| +++ b/tools/flags/SkCommandLineFlags.h |
| @@ -41,8 +41,6 @@ |
| * "--boolean true" (where "true" can be replaced by "false", "TRUE", "FALSE", |
| * "1" or "0"). |
| * |
| - * Single dashes are also permitted for this and other flags. |
| - * |
| * The helpString will be printed if the help flag (-h or -help) is used. |
| * |
| * Similarly, the line |
| @@ -149,8 +147,8 @@ static bool unused_##name = SkFlagInfo::CreateStringFlag(TO_STRING(name), \ |
| defaultValue, \ |
| helpString) |
| -// string2 allows specifying a short name. No check is done to ensure that shortName |
| -// is actually shorter than name. |
| +// string2 allows specifying a short name. There is an assert that shortName |
| +// is only 1 character. |
| #define DEFINE_string2(name, shortName, defaultValue, helpString) \ |
|
reed1
2013/03/21 22:06:59
Can we name this DEFINE_char or DEFINE_string1, to
scroggo
2013/03/22 17:52:31
I agree that the current name is bad... I'm thinki
|
| SkTDArray<const char*> FLAGS_##name; \ |
| static bool unused_##name = SkFlagInfo::CreateStringFlag(TO_STRING(name), \ |
| @@ -192,8 +190,7 @@ public: |
| // Create flags of the desired type, and append to the list. |
| static bool CreateBoolFlag(const char* name, const char* shortName, bool* pBool, |
| bool defaultValue, const char* helpString) { |
| - SkFlagInfo* info = SkNEW_ARGS(SkFlagInfo, (name, kBool_FlagType, helpString)); |
| - info->fShortName.set(shortName); |
| + SkFlagInfo* info = SkNEW_ARGS(SkFlagInfo, (name, shortName, kBool_FlagType, helpString)); |
| info->fBoolValue = pBool; |
| *info->fBoolValue = info->fDefaultBool = defaultValue; |
| return true; |
| @@ -202,8 +199,7 @@ public: |
| static bool CreateStringFlag(const char* name, const char* shortName, |
| SkTDArray<const char*>* pStrings, |
| const char* defaultValue, const char* helpString) { |
| - SkFlagInfo* info = SkNEW_ARGS(SkFlagInfo, (name, kString_FlagType, helpString)); |
| - info->fShortName.set(shortName); |
| + SkFlagInfo* info = SkNEW_ARGS(SkFlagInfo, (name, shortName, kString_FlagType, helpString)); |
| info->fDefaultString.set(defaultValue); |
| info->fStrings = pStrings; |
| @@ -217,7 +213,7 @@ public: |
| static bool CreateIntFlag(const char* name, int32_t* pInt, |
| int32_t defaultValue, const char* helpString) { |
| - SkFlagInfo* info = SkNEW_ARGS(SkFlagInfo, (name, kInt_FlagType, helpString)); |
| + SkFlagInfo* info = SkNEW_ARGS(SkFlagInfo, (name, NULL, kInt_FlagType, helpString)); |
| info->fIntValue = pInt; |
| *info->fIntValue = info->fDefaultInt = defaultValue; |
| return true; |
| @@ -225,7 +221,7 @@ public: |
| static bool CreateDoubleFlag(const char* name, double* pDouble, |
| double defaultValue, const char* helpString) { |
| - SkFlagInfo* info = SkNEW_ARGS(SkFlagInfo, (name, kDouble_FlagType, helpString)); |
| + SkFlagInfo* info = SkNEW_ARGS(SkFlagInfo, (name, NULL, kDouble_FlagType, helpString)); |
| info->fDoubleValue = pDouble; |
| *info->fDoubleValue = info->fDefaultDouble = defaultValue; |
| return true; |
| @@ -333,8 +329,9 @@ public: |
| } |
| private: |
| - SkFlagInfo(const char* name, FlagTypes type, const char* helpString) |
| + SkFlagInfo(const char* name, const char* shortName, FlagTypes type, const char* helpString) |
| : fName(name) |
| + , fShortName(shortName) |
| , fFlagType(type) |
| , fHelpString(helpString) |
| , fBoolValue(NULL) |
| @@ -346,6 +343,8 @@ private: |
| , fStrings(NULL) { |
| fNext = SkCommandLineFlags::gHead; |
| SkCommandLineFlags::gHead = this; |
| + SkASSERT(NULL != name && strlen(name) > 1); |
| + SkASSERT(NULL == shortName || 1 == strlen(shortName)); |
| } |
| // Name of the flag, without initial dashes |
| SkString fName; |