summaryrefslogtreecommitdiffstats
path: root/source/Utility/StringExtractor.cpp
diff options
context:
space:
mode:
authoremaste <emaste@FreeBSD.org>2014-11-25 21:00:58 +0000
committeremaste <emaste@FreeBSD.org>2014-11-25 21:00:58 +0000
commit01ee1789d6aa7294e5966a97f8d29387f6f81699 (patch)
treec94307da318be46e5aeea1a325c1e91749506e4f /source/Utility/StringExtractor.cpp
parent788502c6f6261e2d84ef85d1052b41a6c5be31b3 (diff)
downloadFreeBSD-src-01ee1789d6aa7294e5966a97f8d29387f6f81699.zip
FreeBSD-src-01ee1789d6aa7294e5966a97f8d29387f6f81699.tar.gz
Import LLDB as of upstream SVN r216948 (git 50f7fe44)
This corresponds with the branchpoint for the 3.5 release. A number of files not required for the FreeBSD build have been removed. Sponsored by: DARPA, AFRL
Diffstat (limited to 'source/Utility/StringExtractor.cpp')
-rw-r--r--source/Utility/StringExtractor.cpp31
1 files changed, 17 insertions, 14 deletions
diff --git a/source/Utility/StringExtractor.cpp b/source/Utility/StringExtractor.cpp
index 9d23157..87478532 100644
--- a/source/Utility/StringExtractor.cpp
+++ b/source/Utility/StringExtractor.cpp
@@ -63,16 +63,6 @@ xdigit_to_sint (char ch)
return ch - '0';
}
-static inline unsigned int
-xdigit_to_uint (uint8_t ch)
-{
- if (ch >= 'a' && ch <= 'f')
- return 10u + ch - 'a';
- if (ch >= 'A' && ch <= 'F')
- return 10u + ch - 'A';
- return ch - '0';
-}
-
//----------------------------------------------------------------------
// StringExtractor constructor
//----------------------------------------------------------------------
@@ -165,7 +155,7 @@ StringExtractor::GetU32 (uint32_t fail_value, int base)
{
if (m_index < m_packet.size())
{
- char *end = NULL;
+ char *end = nullptr;
const char *start = m_packet.c_str();
const char *cstr = start + m_index;
uint32_t result = ::strtoul (cstr, &end, base);
@@ -184,7 +174,7 @@ StringExtractor::GetS32 (int32_t fail_value, int base)
{
if (m_index < m_packet.size())
{
- char *end = NULL;
+ char *end = nullptr;
const char *start = m_packet.c_str();
const char *cstr = start + m_index;
int32_t result = ::strtol (cstr, &end, base);
@@ -204,7 +194,7 @@ StringExtractor::GetU64 (uint64_t fail_value, int base)
{
if (m_index < m_packet.size())
{
- char *end = NULL;
+ char *end = nullptr;
const char *start = m_packet.c_str();
const char *cstr = start + m_index;
uint64_t result = ::strtoull (cstr, &end, base);
@@ -223,7 +213,7 @@ StringExtractor::GetS64 (int64_t fail_value, int base)
{
if (m_index < m_packet.size())
{
- char *end = NULL;
+ char *end = nullptr;
const char *start = m_packet.c_str();
const char *cstr = start + m_index;
int64_t result = ::strtoll (cstr, &end, base);
@@ -429,6 +419,18 @@ StringExtractor::GetHexByteString (std::string &str)
}
size_t
+StringExtractor::GetHexByteStringFixedLength (std::string &str, uint32_t nibble_length)
+{
+ str.clear();
+
+ uint32_t nibble_count = 0;
+ for (const char *pch = Peek(); (nibble_count < nibble_length) && (pch != nullptr); str.append(1, GetHexU8(0, false)), pch = Peek (), nibble_count += 2)
+ {}
+
+ return str.size();
+}
+
+size_t
StringExtractor::GetHexByteStringTerminatedBy (std::string &str,
char terminator)
{
@@ -438,6 +440,7 @@ StringExtractor::GetHexByteStringTerminatedBy (std::string &str,
str.append(1, ch);
if (Peek() && *Peek() == terminator)
return str.size();
+
str.clear();
return str.size();
}
OpenPOWER on IntegriCloud