summaryrefslogtreecommitdiffstats
path: root/lldb/source/Commands/CommandObjectPlatform.cpp
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2016-09-23 17:48:13 +0000
committerZachary Turner <zturner@google.com>2016-09-23 17:48:13 +0000
commit8cef4b0bb4bae8598efa7cd1274e54f534b0f4a4 (patch)
tree1ce2972876d13303fcd7f12d5774f806921d3421 /lldb/source/Commands/CommandObjectPlatform.cpp
parent6c46efba7818644ddab8d8c52940583c0672fd98 (diff)
downloadbcm5719-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.cpp23
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;
OpenPOWER on IntegriCloud