Looks like this broke some bots, i can fix it up in about 30 minutes <br><div class="gmail_quote"><div dir="ltr">On Wed, Nov 16, 2016 at 5:47 PM Zachary Turner via lldb-commits <<a href="mailto:lldb-commits@lists.llvm.org">lldb-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: zturner<br class="gmail_msg">
Date: Wed Nov 16 19:38:02 2016<br class="gmail_msg">
New Revision: 287190<br class="gmail_msg">
<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=287190&view=rev" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project?rev=287190&view=rev</a><br class="gmail_msg">
Log:<br class="gmail_msg">
Convert UriParser to use StringRef.<br class="gmail_msg">
<br class="gmail_msg">
Modified:<br class="gmail_msg">
lldb/trunk/include/lldb/Core/UUID.h<br class="gmail_msg">
lldb/trunk/source/Core/UUID.cpp<br class="gmail_msg">
lldb/trunk/source/Interpreter/OptionValueUUID.cpp<br class="gmail_msg">
lldb/trunk/source/Plugins/Platform/Android/AdbClient.cpp<br class="gmail_msg">
lldb/trunk/source/Plugins/Platform/Android/AdbClient.h<br class="gmail_msg">
lldb/trunk/source/Plugins/Platform/Android/PlatformAndroid.cpp<br class="gmail_msg">
lldb/trunk/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.cpp<br class="gmail_msg">
lldb/trunk/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.h<br class="gmail_msg">
lldb/trunk/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp<br class="gmail_msg">
lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp<br class="gmail_msg">
lldb/trunk/source/Utility/UriParser.cpp<br class="gmail_msg">
lldb/trunk/source/Utility/UriParser.h<br class="gmail_msg">
lldb/trunk/unittests/Utility/UriParserTest.cpp<br class="gmail_msg">
<br class="gmail_msg">
Modified: lldb/trunk/include/lldb/Core/UUID.h<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Core/UUID.h?rev=287190&r1=287189&r2=287190&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Core/UUID.h?rev=287190&r1=287189&r2=287190&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- lldb/trunk/include/lldb/Core/UUID.h (original)<br class="gmail_msg">
+++ lldb/trunk/include/lldb/Core/UUID.h Wed Nov 16 19:38:02 2016<br class="gmail_msg">
@@ -73,6 +73,7 @@ public:<br class="gmail_msg">
//------------------------------------------------------------------<br class="gmail_msg">
static llvm::StringRef<br class="gmail_msg">
DecodeUUIDBytesFromString(llvm::StringRef str, ValueType &uuid_bytes,<br class="gmail_msg">
+ uint32_t &bytes_decoded,<br class="gmail_msg">
uint32_t num_uuid_bytes = 16);<br class="gmail_msg">
<br class="gmail_msg">
protected:<br class="gmail_msg">
<br class="gmail_msg">
Modified: lldb/trunk/source/Core/UUID.cpp<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/UUID.cpp?rev=287190&r1=287189&r2=287190&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/UUID.cpp?rev=287190&r1=287189&r2=287190&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- lldb/trunk/source/Core/UUID.cpp (original)<br class="gmail_msg">
+++ lldb/trunk/source/Core/UUID.cpp Wed Nov 16 19:38:02 2016<br class="gmail_msg">
@@ -128,6 +128,7 @@ static inline int xdigit_to_int(char ch)<br class="gmail_msg">
<br class="gmail_msg">
llvm::StringRef UUID::DecodeUUIDBytesFromString(llvm::StringRef p,<br class="gmail_msg">
ValueType &uuid_bytes,<br class="gmail_msg">
+ uint32_t &bytes_decoded,<br class="gmail_msg">
uint32_t num_uuid_bytes) {<br class="gmail_msg">
::memset(uuid_bytes, 0, sizeof(uuid_bytes));<br class="gmail_msg">
size_t uuid_byte_idx = 0;<br class="gmail_msg">
@@ -157,6 +158,7 @@ llvm::StringRef UUID::DecodeUUIDBytesFro<br class="gmail_msg">
// Clear trailing bytes to 0.<br class="gmail_msg">
for (uint32_t i = uuid_byte_idx; i < sizeof(ValueType); i++)<br class="gmail_msg">
uuid_bytes[i] = 0;<br class="gmail_msg">
+ bytes_decoded = uuid_byte_idx;<br class="gmail_msg">
return p;<br class="gmail_msg">
}<br class="gmail_msg">
size_t UUID::SetFromCString(const char *cstr, uint32_t num_uuid_bytes) {<br class="gmail_msg">
@@ -169,9 +171,9 @@ size_t UUID::SetFromCString(const char *<br class="gmail_msg">
// Skip leading whitespace characters<br class="gmail_msg">
p = p.ltrim();<br class="gmail_msg">
<br class="gmail_msg">
+ uint32_t bytes_decoded = 0;<br class="gmail_msg">
llvm::StringRef rest =<br class="gmail_msg">
- UUID::DecodeUUIDBytesFromString(p, m_uuid, num_uuid_bytes);<br class="gmail_msg">
- size_t bytes_decoded = p.size() - rest.size();<br class="gmail_msg">
+ UUID::DecodeUUIDBytesFromString(p, m_uuid, bytes_decoded, num_uuid_bytes);<br class="gmail_msg">
<br class="gmail_msg">
// If we successfully decoded a UUID, return the amount of characters that<br class="gmail_msg">
// were consumed<br class="gmail_msg">
<br class="gmail_msg">
Modified: lldb/trunk/source/Interpreter/OptionValueUUID.cpp<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Interpreter/OptionValueUUID.cpp?rev=287190&r1=287189&r2=287190&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Interpreter/OptionValueUUID.cpp?rev=287190&r1=287189&r2=287190&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- lldb/trunk/source/Interpreter/OptionValueUUID.cpp (original)<br class="gmail_msg">
+++ lldb/trunk/source/Interpreter/OptionValueUUID.cpp Wed Nov 16 19:38:02 2016<br class="gmail_msg">
@@ -79,8 +79,9 @@ size_t OptionValueUUID::AutoComplete(Com<br class="gmail_msg">
const size_t num_modules = target->GetImages().GetSize();<br class="gmail_msg">
if (num_modules > 0) {<br class="gmail_msg">
UUID::ValueType uuid_bytes;<br class="gmail_msg">
- llvm::StringRef rest = UUID::DecodeUUIDBytesFromString(s, uuid_bytes);<br class="gmail_msg">
- const size_t num_bytes_decoded = s.size() - rest.size();<br class="gmail_msg">
+ size_t num_bytes_decoded = 0;<br class="gmail_msg">
+ llvm::StringRef rest =<br class="gmail_msg">
+ UUID::DecodeUUIDBytesFromString(s, uuid_bytes, num_bytes_decoded);<br class="gmail_msg">
for (size_t i = 0; i < num_modules; ++i) {<br class="gmail_msg">
ModuleSP module_sp(target->GetImages().GetModuleAtIndex(i));<br class="gmail_msg">
if (module_sp) {<br class="gmail_msg">
<br class="gmail_msg">
Modified: lldb/trunk/source/Plugins/Platform/Android/AdbClient.cpp<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/Android/AdbClient.cpp?rev=287190&r1=287189&r2=287190&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/Android/AdbClient.cpp?rev=287190&r1=287189&r2=287190&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- lldb/trunk/source/Plugins/Platform/Android/AdbClient.cpp (original)<br class="gmail_msg">
+++ lldb/trunk/source/Plugins/Platform/Android/AdbClient.cpp Wed Nov 16 19:38:02 2016<br class="gmail_msg">
@@ -185,7 +185,7 @@ Error AdbClient::SetPortForwarding(const<br class="gmail_msg">
}<br class="gmail_msg">
<br class="gmail_msg">
Error AdbClient::SetPortForwarding(const uint16_t local_port,<br class="gmail_msg">
- const char *remote_socket_name,<br class="gmail_msg">
+ llvm::StringRef remote_socket_name,<br class="gmail_msg">
const UnixSocketNamespace socket_namespace) {<br class="gmail_msg">
char message[PATH_MAX];<br class="gmail_msg">
const char *sock_namespace_str =<br class="gmail_msg">
@@ -193,7 +193,7 @@ Error AdbClient::SetPortForwarding(const<br class="gmail_msg">
? kSocketNamespaceAbstract<br class="gmail_msg">
: kSocketNamespaceFileSystem;<br class="gmail_msg">
snprintf(message, sizeof(message), "forward:tcp:%d;%s:%s", local_port,<br class="gmail_msg">
- sock_namespace_str, remote_socket_name);<br class="gmail_msg">
+ sock_namespace_str, remote_socket_name.str().c_str());<br class="gmail_msg">
<br class="gmail_msg">
const auto error = SendDeviceMessage(message);<br class="gmail_msg">
if (error.Fail())<br class="gmail_msg">
<br class="gmail_msg">
Modified: lldb/trunk/source/Plugins/Platform/Android/AdbClient.h<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/Android/AdbClient.h?rev=287190&r1=287189&r2=287190&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/Android/AdbClient.h?rev=287190&r1=287189&r2=287190&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- lldb/trunk/source/Plugins/Platform/Android/AdbClient.h (original)<br class="gmail_msg">
+++ lldb/trunk/source/Plugins/Platform/Android/AdbClient.h Wed Nov 16 19:38:02 2016<br class="gmail_msg">
@@ -96,7 +96,7 @@ public:<br class="gmail_msg">
const uint16_t remote_port);<br class="gmail_msg">
<br class="gmail_msg">
Error SetPortForwarding(const uint16_t local_port,<br class="gmail_msg">
- const char *remote_socket_name,<br class="gmail_msg">
+ llvm::StringRef remote_socket_name,<br class="gmail_msg">
const UnixSocketNamespace socket_namespace);<br class="gmail_msg">
<br class="gmail_msg">
Error DeletePortForwarding(const uint16_t local_port);<br class="gmail_msg">
<br class="gmail_msg">
Modified: lldb/trunk/source/Plugins/Platform/Android/PlatformAndroid.cpp<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/Android/PlatformAndroid.cpp?rev=287190&r1=287189&r2=287190&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/Android/PlatformAndroid.cpp?rev=287190&r1=287189&r2=287190&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- lldb/trunk/source/Plugins/Platform/Android/PlatformAndroid.cpp (original)<br class="gmail_msg">
+++ lldb/trunk/source/Plugins/Platform/Android/PlatformAndroid.cpp Wed Nov 16 19:38:02 2016<br class="gmail_msg">
@@ -168,7 +168,7 @@ Error PlatformAndroid::ConnectRemote(Arg<br class="gmail_msg">
m_remote_platform_sp = PlatformSP(new PlatformAndroidRemoteGDBServer());<br class="gmail_msg">
<br class="gmail_msg">
int port;<br class="gmail_msg">
- std::string scheme, host, path;<br class="gmail_msg">
+ llvm::StringRef scheme, host, path;<br class="gmail_msg">
const char *url = args.GetArgumentAtIndex(0);<br class="gmail_msg">
if (!url)<br class="gmail_msg">
return Error("URL is null.");<br class="gmail_msg">
<br class="gmail_msg">
Modified: lldb/trunk/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.cpp<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.cpp?rev=287190&r1=287189&r2=287190&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.cpp?rev=287190&r1=287189&r2=287190&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- lldb/trunk/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.cpp (original)<br class="gmail_msg">
+++ lldb/trunk/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.cpp Wed Nov 16 19:38:02 2016<br class="gmail_msg">
@@ -27,7 +27,7 @@ static const lldb::pid_t g_remote_platfo<br class="gmail_msg">
<br class="gmail_msg">
static Error ForwardPortWithAdb(<br class="gmail_msg">
const uint16_t local_port, const uint16_t remote_port,<br class="gmail_msg">
- const char *remote_socket_name,<br class="gmail_msg">
+ llvm::StringRef remote_socket_name,<br class="gmail_msg">
const llvm::Optional<AdbClient::UnixSocketNamespace> &socket_namespace,<br class="gmail_msg">
std::string &device_id) {<br class="gmail_msg">
Log *log(GetLogIfAllCategoriesSet(LIBLLDB_LOG_PLATFORM));<br class="gmail_msg">
@@ -50,7 +50,7 @@ static Error ForwardPortWithAdb(<br class="gmail_msg">
<br class="gmail_msg">
if (log)<br class="gmail_msg">
log->Printf("Forwarding remote socket \"%s\" to local TCP port %d",<br class="gmail_msg">
- remote_socket_name, local_port);<br class="gmail_msg">
+ remote_socket_name.str().c_str(), local_port);<br class="gmail_msg">
<br class="gmail_msg">
if (!socket_namespace)<br class="gmail_msg">
return Error("Invalid socket namespace");<br class="gmail_msg">
@@ -114,7 +114,7 @@ Error PlatformAndroidRemoteGDBServer::Co<br class="gmail_msg">
return Error("\"platform connect\" takes a single argument: <connect-url>");<br class="gmail_msg">
<br class="gmail_msg">
int remote_port;<br class="gmail_msg">
- std::string scheme, host, path;<br class="gmail_msg">
+ llvm::StringRef scheme, host, path;<br class="gmail_msg">
const char *url = args.GetArgumentAtIndex(0);<br class="gmail_msg">
if (!url)<br class="gmail_msg">
return Error("URL is null.");<br class="gmail_msg">
@@ -132,7 +132,7 @@ Error PlatformAndroidRemoteGDBServer::Co<br class="gmail_msg">
std::string connect_url;<br class="gmail_msg">
auto error =<br class="gmail_msg">
MakeConnectURL(g_remote_platform_pid, (remote_port < 0) ? 0 : remote_port,<br class="gmail_msg">
- path.c_str(), connect_url);<br class="gmail_msg">
+ path, connect_url);<br class="gmail_msg">
<br class="gmail_msg">
if (error.Fail())<br class="gmail_msg">
return error;<br class="gmail_msg">
@@ -175,7 +175,7 @@ void PlatformAndroidRemoteGDBServer::Del<br class="gmail_msg">
<br class="gmail_msg">
Error PlatformAndroidRemoteGDBServer::MakeConnectURL(<br class="gmail_msg">
const lldb::pid_t pid, const uint16_t remote_port,<br class="gmail_msg">
- const char *remote_socket_name, std::string &connect_url) {<br class="gmail_msg">
+ llvm::StringRef remote_socket_name, std::string &connect_url) {<br class="gmail_msg">
static const int kAttempsNum = 5;<br class="gmail_msg">
<br class="gmail_msg">
Error error;<br class="gmail_msg">
@@ -214,7 +214,7 @@ lldb::ProcessSP PlatformAndroidRemoteGDB<br class="gmail_msg">
static lldb::pid_t s_remote_gdbserver_fake_pid = 0xffffffffffffffffULL;<br class="gmail_msg">
<br class="gmail_msg">
int remote_port;<br class="gmail_msg">
- std::string scheme, host, path;<br class="gmail_msg">
+ llvm::StringRef scheme, host, path;<br class="gmail_msg">
if (!UriParser::Parse(connect_url, scheme, host, remote_port, path)) {<br class="gmail_msg">
error.SetErrorStringWithFormat("Invalid URL: %s", connect_url);<br class="gmail_msg">
return nullptr;<br class="gmail_msg">
@@ -222,7 +222,7 @@ lldb::ProcessSP PlatformAndroidRemoteGDB<br class="gmail_msg">
<br class="gmail_msg">
std::string new_connect_url;<br class="gmail_msg">
error = MakeConnectURL(s_remote_gdbserver_fake_pid--,<br class="gmail_msg">
- (remote_port < 0) ? 0 : remote_port, path.c_str(),<br class="gmail_msg">
+ (remote_port < 0) ? 0 : remote_port, path,<br class="gmail_msg">
new_connect_url);<br class="gmail_msg">
if (error.Fail())<br class="gmail_msg">
return nullptr;<br class="gmail_msg">
<br class="gmail_msg">
Modified: lldb/trunk/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.h<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.h?rev=287190&r1=287189&r2=287190&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.h?rev=287190&r1=287189&r2=287190&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- lldb/trunk/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.h (original)<br class="gmail_msg">
+++ lldb/trunk/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.h Wed Nov 16 19:38:02 2016<br class="gmail_msg">
@@ -55,7 +55,7 @@ protected:<br class="gmail_msg">
void DeleteForwardPort(lldb::pid_t pid);<br class="gmail_msg">
<br class="gmail_msg">
Error MakeConnectURL(const lldb::pid_t pid, const uint16_t remote_port,<br class="gmail_msg">
- const char *remote_socket_name,<br class="gmail_msg">
+ llvm::StringRef remote_socket_name,<br class="gmail_msg">
std::string &connect_url);<br class="gmail_msg">
<br class="gmail_msg">
private:<br class="gmail_msg">
<br class="gmail_msg">
Modified: lldb/trunk/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp?rev=287190&r1=287189&r2=287190&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp?rev=287190&r1=287189&r2=287190&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- lldb/trunk/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp (original)<br class="gmail_msg">
+++ lldb/trunk/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp Wed Nov 16 19:38:02 2016<br class="gmail_msg">
@@ -309,9 +309,12 @@ Error PlatformRemoteGDBServer::ConnectRe<br class="gmail_msg">
const char *url = args.GetArgumentAtIndex(0);<br class="gmail_msg">
if (!url)<br class="gmail_msg">
return Error("URL is null.");<br class="gmail_msg">
- if (!UriParser::Parse(url, m_platform_scheme, m_platform_hostname, port,<br class="gmail_msg">
- path))<br class="gmail_msg">
+ llvm::StringRef scheme, hostname, pathname;<br class="gmail_msg">
+ if (!UriParser::Parse(url, scheme, hostname, port, pathname))<br class="gmail_msg">
return Error("Invalid URL: %s", url);<br class="gmail_msg">
+ m_platform_scheme = scheme;<br class="gmail_msg">
+ m_platform_hostname = hostname;<br class="gmail_msg">
+ path = pathname;<br class="gmail_msg">
<br class="gmail_msg">
const ConnectionStatus status = m_gdb_client.Connect(url, &error);<br class="gmail_msg">
if (status == eConnectionStatusSuccess) {<br class="gmail_msg">
<br class="gmail_msg">
Modified: lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp?rev=287190&r1=287189&r2=287190&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp?rev=287190&r1=287189&r2=287190&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp (original)<br class="gmail_msg">
+++ lldb/trunk/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp Wed Nov 16 19:38:02 2016<br class="gmail_msg">
@@ -124,10 +124,10 @@ Error GDBRemoteCommunicationServerPlatfo<br class="gmail_msg">
this, std::placeholders::_1),<br class="gmail_msg">
false);<br class="gmail_msg">
<br class="gmail_msg">
- std::string platform_scheme;<br class="gmail_msg">
- std::string platform_ip;<br class="gmail_msg">
+ llvm::StringRef platform_scheme;<br class="gmail_msg">
+ llvm::StringRef platform_ip;<br class="gmail_msg">
int platform_port;<br class="gmail_msg">
- std::string platform_path;<br class="gmail_msg">
+ llvm::StringRef platform_path;<br class="gmail_msg">
bool ok = UriParser::Parse(GetConnection()->GetURI(), platform_scheme,<br class="gmail_msg">
platform_ip, platform_port, platform_path);<br class="gmail_msg">
UNUSED_IF_ASSERT_DISABLED(ok);<br class="gmail_msg">
@@ -140,7 +140,7 @@ Error GDBRemoteCommunicationServerPlatfo<br class="gmail_msg">
#endif<br class="gmail_msg">
uint16_t *port_ptr = &port;<br class="gmail_msg">
if (m_socket_protocol == Socket::ProtocolTcp)<br class="gmail_msg">
- url << platform_ip << ":" << port;<br class="gmail_msg">
+ url << platform_ip.str() << ":" << port;<br class="gmail_msg">
else {<br class="gmail_msg">
socket_name = GetDomainSocketPath("gdbserver").GetPath();<br class="gmail_msg">
url << socket_name;<br class="gmail_msg">
<br class="gmail_msg">
Modified: lldb/trunk/source/Utility/UriParser.cpp<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/UriParser.cpp?rev=287190&r1=287189&r2=287190&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/UriParser.cpp?rev=287190&r1=287189&r2=287190&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- lldb/trunk/source/Utility/UriParser.cpp (original)<br class="gmail_msg">
+++ lldb/trunk/source/Utility/UriParser.cpp Wed Nov 16 19:38:02 2016<br class="gmail_msg">
@@ -23,18 +23,19 @@ using namespace lldb_private;<br class="gmail_msg">
//----------------------------------------------------------------------<br class="gmail_msg">
// UriParser::Parse<br class="gmail_msg">
//----------------------------------------------------------------------<br class="gmail_msg">
-bool UriParser::Parse(const std::string &uri, std::string &scheme,<br class="gmail_msg">
- std::string &hostname, int &port, std::string &path) {<br class="gmail_msg">
- std::string tmp_scheme, tmp_hostname, tmp_port, tmp_path;<br class="gmail_msg">
+bool UriParser::Parse(llvm::StringRef uri, llvm::StringRef &scheme,<br class="gmail_msg">
+ llvm::StringRef &hostname, int &port,<br class="gmail_msg">
+ llvm::StringRef &path) {<br class="gmail_msg">
+ llvm::StringRef tmp_scheme, tmp_hostname, tmp_port, tmp_path;<br class="gmail_msg">
<br class="gmail_msg">
- static const char *kSchemeSep = "://";<br class="gmail_msg">
+ const llvm::StringRef kSchemeSep("://");<br class="gmail_msg">
auto pos = uri.find(kSchemeSep);<br class="gmail_msg">
if (pos == std::string::npos)<br class="gmail_msg">
return false;<br class="gmail_msg">
<br class="gmail_msg">
// Extract path.<br class="gmail_msg">
tmp_scheme = uri.substr(0, pos);<br class="gmail_msg">
- auto host_pos = pos + strlen(kSchemeSep);<br class="gmail_msg">
+ auto host_pos = pos + kSchemeSep.size();<br class="gmail_msg">
auto path_pos = uri.find('/', host_pos);<br class="gmail_msg">
if (path_pos != std::string::npos)<br class="gmail_msg">
tmp_path = uri.substr(path_pos);<br class="gmail_msg">
@@ -53,28 +54,19 @@ bool UriParser::Parse(const std::string<br class="gmail_msg">
return false;<br class="gmail_msg">
<br class="gmail_msg">
tmp_hostname = host_port.substr(1, pos - 1);<br class="gmail_msg">
- host_port.erase(0, pos + 1);<br class="gmail_msg">
+ host_port = host_port.drop_front(pos + 1);<br class="gmail_msg">
+ if (!host_port.empty() && !host_port.consume_front(":"))<br class="gmail_msg">
+ return false;<br class="gmail_msg">
} else {<br class="gmail_msg">
- pos = host_port.find(':');<br class="gmail_msg">
- tmp_hostname = host_port.substr(<br class="gmail_msg">
- 0, (pos != std::string::npos) ? pos : host_port.size());<br class="gmail_msg">
- host_port.erase(0, (pos != std::string::npos) ? pos : host_port.size());<br class="gmail_msg">
+ std::tie(tmp_hostname, host_port) = host_port.split(':');<br class="gmail_msg">
}<br class="gmail_msg">
<br class="gmail_msg">
// Extract port<br class="gmail_msg">
- tmp_port = host_port;<br class="gmail_msg">
- if (!tmp_port.empty()) {<br class="gmail_msg">
- if (tmp_port[0] != ':')<br class="gmail_msg">
- return false;<br class="gmail_msg">
- tmp_port = tmp_port.substr(1);<br class="gmail_msg">
- bool success = false;<br class="gmail_msg">
- auto port_tmp =<br class="gmail_msg">
- StringConvert::ToUInt32(tmp_port.c_str(), UINT32_MAX, 10, &success);<br class="gmail_msg">
- if (!success || port_tmp > 65535) {<br class="gmail_msg">
- // there are invalid characters in port_buf<br class="gmail_msg">
+ if (!host_port.empty()) {<br class="gmail_msg">
+ uint16_t port_value = 0;<br class="gmail_msg">
+ if (host_port.getAsInteger(0, port_value))<br class="gmail_msg">
return false;<br class="gmail_msg">
- }<br class="gmail_msg">
- port = port_tmp;<br class="gmail_msg">
+ port = port_value;<br class="gmail_msg">
} else<br class="gmail_msg">
port = -1;<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
Modified: lldb/trunk/source/Utility/UriParser.h<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/UriParser.h?rev=287190&r1=287189&r2=287190&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/UriParser.h?rev=287190&r1=287189&r2=287190&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- lldb/trunk/source/Utility/UriParser.h (original)<br class="gmail_msg">
+++ lldb/trunk/source/Utility/UriParser.h Wed Nov 16 19:38:02 2016<br class="gmail_msg">
@@ -12,9 +12,10 @@<br class="gmail_msg">
<br class="gmail_msg">
// C Includes<br class="gmail_msg">
// C++ Includes<br class="gmail_msg">
-#include <string><br class="gmail_msg">
<br class="gmail_msg">
// Other libraries and framework includes<br class="gmail_msg">
+#include "llvm/ADT/StringRef.h"<br class="gmail_msg">
+<br class="gmail_msg">
// Project includes<br class="gmail_msg">
<br class="gmail_msg">
class UriParser {<br class="gmail_msg">
@@ -27,8 +28,9 @@ public:<br class="gmail_msg">
//<br class="gmail_msg">
// if the url is invalid, function returns false and<br class="gmail_msg">
// output parameters remain unchanged<br class="gmail_msg">
- static bool Parse(const std::string &uri, std::string &scheme,<br class="gmail_msg">
- std::string &hostname, int &port, std::string &path);<br class="gmail_msg">
+ static bool Parse(llvm::StringRef uri, llvm::StringRef &scheme,<br class="gmail_msg">
+ llvm::StringRef &hostname, int &port,<br class="gmail_msg">
+ llvm::StringRef &path);<br class="gmail_msg">
};<br class="gmail_msg">
<br class="gmail_msg">
#endif // utility_UriParser_h_<br class="gmail_msg">
<br class="gmail_msg">
Modified: lldb/trunk/unittests/Utility/UriParserTest.cpp<br class="gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/Utility/UriParserTest.cpp?rev=287190&r1=287189&r2=287190&view=diff" rel="noreferrer" class="gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/lldb/trunk/unittests/Utility/UriParserTest.cpp?rev=287190&r1=287189&r2=287190&view=diff</a><br class="gmail_msg">
==============================================================================<br class="gmail_msg">
--- lldb/trunk/unittests/Utility/UriParserTest.cpp (original)<br class="gmail_msg">
+++ lldb/trunk/unittests/Utility/UriParserTest.cpp Wed Nov 16 19:38:02 2016<br class="gmail_msg">
@@ -30,16 +30,16 @@ public:<br class="gmail_msg">
};<br class="gmail_msg">
<br class="gmail_msg">
#define VALIDATE \<br class="gmail_msg">
- std::string scheme(kAsdf); \<br class="gmail_msg">
- std::string hostname(kAsdf); \<br class="gmail_msg">
+ llvm::StringRef scheme(kAsdf); \<br class="gmail_msg">
+ llvm::StringRef hostname(kAsdf); \<br class="gmail_msg">
int port(1138); \<br class="gmail_msg">
- std::string path(kAsdf); \<br class="gmail_msg">
+ llvm::StringRef path(kAsdf); \<br class="gmail_msg">
EXPECT_EQ(testCase.m_result, \<br class="gmail_msg">
UriParser::Parse(testCase.m_uri, scheme, hostname, port, path)); \<br class="gmail_msg">
- EXPECT_STREQ(testCase.m_scheme, scheme.c_str()); \<br class="gmail_msg">
- EXPECT_STREQ(testCase.m_hostname, hostname.c_str()); \<br class="gmail_msg">
+ EXPECT_STREQ(testCase.m_scheme, scheme.str().c_str()); \<br class="gmail_msg">
+ EXPECT_STREQ(testCase.m_hostname, hostname.str().c_str()); \<br class="gmail_msg">
EXPECT_EQ(testCase.m_port, port); \<br class="gmail_msg">
- EXPECT_STREQ(testCase.m_path, path.c_str());<br class="gmail_msg">
+ EXPECT_STREQ(testCase.m_path, path.str().c_str());<br class="gmail_msg">
<br class="gmail_msg">
TEST_F(UriParserTest, Minimal) {<br class="gmail_msg">
const UriTestCase testCase("x://y", "x", "y", -1, "/");<br class="gmail_msg">
@@ -48,7 +48,17 @@ TEST_F(UriParserTest, Minimal) {<br class="gmail_msg">
<br class="gmail_msg">
TEST_F(UriParserTest, MinimalPort) {<br class="gmail_msg">
const UriTestCase testCase("x://y:1", "x", "y", 1, "/");<br class="gmail_msg">
- VALIDATE<br class="gmail_msg">
+ llvm::StringRef scheme(kAsdf);<br class="gmail_msg">
+ llvm::StringRef hostname(kAsdf);<br class="gmail_msg">
+ int port(1138);<br class="gmail_msg">
+ llvm::StringRef path(kAsdf);<br class="gmail_msg">
+ bool result = UriParser::Parse(testCase.m_uri, scheme, hostname, port, path);<br class="gmail_msg">
+ EXPECT_EQ(testCase.m_result, result);<br class="gmail_msg">
+<br class="gmail_msg">
+ EXPECT_STREQ(testCase.m_scheme, scheme.str().c_str());<br class="gmail_msg">
+ EXPECT_STREQ(testCase.m_hostname, hostname.str().c_str());<br class="gmail_msg">
+ EXPECT_EQ(testCase.m_port, port);<br class="gmail_msg">
+ EXPECT_STREQ(testCase.m_path, path.str().c_str());<br class="gmail_msg">
}<br class="gmail_msg">
<br class="gmail_msg">
TEST_F(UriParserTest, MinimalPath) {<br class="gmail_msg">
@@ -69,13 +79,23 @@ TEST_F(UriParserTest, LongPath) {<br class="gmail_msg">
TEST_F(UriParserTest, TypicalPortPath) {<br class="gmail_msg">
const UriTestCase testCase("connect://<a href="http://192.168.100.132:5432/" rel="noreferrer" class="gmail_msg" target="_blank">192.168.100.132:5432/</a>", "connect",<br class="gmail_msg">
"192.168.100.132", 5432, "/");<br class="gmail_msg">
- VALIDATE<br class="gmail_msg">
+ VALIDATE;<br class="gmail_msg">
}<br class="gmail_msg">
<br class="gmail_msg">
TEST_F(UriParserTest, BracketedHostnamePort) {<br class="gmail_msg">
const UriTestCase testCase("connect://[192.168.100.132]:5432/", "connect",<br class="gmail_msg">
"192.168.100.132", 5432, "/");<br class="gmail_msg">
- VALIDATE<br class="gmail_msg">
+ llvm::StringRef scheme(kAsdf);<br class="gmail_msg">
+ llvm::StringRef hostname(kAsdf);<br class="gmail_msg">
+ int port(1138);<br class="gmail_msg">
+ llvm::StringRef path(kAsdf);<br class="gmail_msg">
+ bool result = UriParser::Parse(testCase.m_uri, scheme, hostname, port, path);<br class="gmail_msg">
+ EXPECT_EQ(testCase.m_result, result);<br class="gmail_msg">
+<br class="gmail_msg">
+ EXPECT_STREQ(testCase.m_scheme, scheme.str().c_str());<br class="gmail_msg">
+ EXPECT_STREQ(testCase.m_hostname, hostname.str().c_str());<br class="gmail_msg">
+ EXPECT_EQ(testCase.m_port, port);<br class="gmail_msg">
+ EXPECT_STREQ(testCase.m_path, path.str().c_str());<br class="gmail_msg">
}<br class="gmail_msg">
<br class="gmail_msg">
TEST_F(UriParserTest, BracketedHostname) {<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
_______________________________________________<br class="gmail_msg">
lldb-commits mailing list<br class="gmail_msg">
<a href="mailto:lldb-commits@lists.llvm.org" class="gmail_msg" target="_blank">lldb-commits@lists.llvm.org</a><br class="gmail_msg">
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits</a><br class="gmail_msg">
</blockquote></div>