diff options
author | Zachary Turner <zturner@google.com> | 2016-09-23 17:48:13 +0000 |
---|---|---|
committer | Zachary Turner <zturner@google.com> | 2016-09-23 17:48:13 +0000 |
commit | 8cef4b0bb4bae8598efa7cd1274e54f534b0f4a4 (patch) | |
tree | 1ce2972876d13303fcd7f12d5774f806921d3421 /lldb/source/Commands/CommandObjectPlatform.cpp | |
parent | 6c46efba7818644ddab8d8c52940583c0672fd98 (diff) | |
download | bcm5719-llvm-8cef4b0bb4bae8598efa7cd1274e54f534b0f4a4.tar.gz bcm5719-llvm-8cef4b0bb4bae8598efa7cd1274e54f534b0f4a4.zip |
Update OptionGroup::SetValue to take StringRef.
Then deal with all the fallout.
Differential Revision: https://reviews.llvm.org/D24847
llvm-svn: 282265
Diffstat (limited to 'lldb/source/Commands/CommandObjectPlatform.cpp')
-rw-r--r-- | lldb/source/Commands/CommandObjectPlatform.cpp | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/lldb/source/Commands/CommandObjectPlatform.cpp b/lldb/source/Commands/CommandObjectPlatform.cpp index bc52af82301..702fee9badd 100644 --- a/lldb/source/Commands/CommandObjectPlatform.cpp +++ b/lldb/source/Commands/CommandObjectPlatform.cpp @@ -34,8 +34,10 @@ using namespace lldb; using namespace lldb_private; -static mode_t ParsePermissionString(const char *permissions) { - if (strlen(permissions) != 9) +static mode_t ParsePermissionString(const char *) = delete; + +static mode_t ParsePermissionString(llvm::StringRef permissions) { + if (permissions.size() != 9) return (mode_t)(-1); bool user_r, user_w, user_x, group_r, group_w, group_x, world_r, world_w, world_x; @@ -76,32 +78,31 @@ static OptionDefinition g_permissions_options[] = { // clang-format on }; -class OptionPermissions : public lldb_private::OptionGroup { +class OptionPermissions : public OptionGroup { public: OptionPermissions() {} ~OptionPermissions() override = default; lldb_private::Error - SetOptionValue(uint32_t option_idx, const char *option_arg, + SetOptionValue(uint32_t option_idx, llvm::StringRef option_arg, ExecutionContext *execution_context) override { Error error; char short_option = (char)GetDefinitions()[option_idx].short_option; switch (short_option) { case 'v': { - bool ok; - uint32_t perms = StringConvert::ToUInt32(option_arg, 777, 8, &ok); - if (!ok) + if (option_arg.getAsInteger(8, m_permissions)) { + m_permissions = 0777; error.SetErrorStringWithFormat("invalid value for permissions: %s", - option_arg); - else - m_permissions = perms; + option_arg.str().c_str()); + } + } break; case 's': { mode_t perms = ParsePermissionString(option_arg); if (perms == (mode_t)-1) error.SetErrorStringWithFormat("invalid value for permissions: %s", - option_arg); + option_arg.str().c_str()); else m_permissions = perms; } break; |