diff options
author | Adam Lesinski <adamlesinski@google.com> | 2017-01-16 15:07:21 -0800 |
---|---|---|
committer | Adam Lesinski <adamlesinski@google.com> | 2017-01-17 18:55:51 -0800 |
commit | d5083f6f6b9bc76bbe64052bcec639eee752a321 (patch) | |
tree | 29b5dfb74c7e9b12164ced408315b0ad8d5cf527 /tools/aapt2/xml/XmlPullParser.cpp | |
parent | 04e7b6c6de620406348142ba9dd65bad094e264b (diff) |
Move StringPiece to libandroidfw
libandroidfw needs to make use of StringPiece, so
move it to libandroidfw and update all code referencing
StringPiece in aapt2.
Test: make libandroidfw_tests libaapt2_tests
Change-Id: I68d7f0fc7c651b048d9d1f5e7971f10ef5349fa1
Diffstat (limited to 'tools/aapt2/xml/XmlPullParser.cpp')
-rw-r--r-- | tools/aapt2/xml/XmlPullParser.cpp | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/tools/aapt2/xml/XmlPullParser.cpp b/tools/aapt2/xml/XmlPullParser.cpp index e59fa86788cd..c2a9c8283a6d 100644 --- a/tools/aapt2/xml/XmlPullParser.cpp +++ b/tools/aapt2/xml/XmlPullParser.cpp @@ -22,6 +22,8 @@ #include "xml/XmlPullParser.h" #include "xml/XmlUtil.h" +using android::StringPiece; + namespace aapt { namespace xml { @@ -136,15 +138,14 @@ const std::string& XmlPullParser::namespace_uri() const { Maybe<ExtractedPackage> XmlPullParser::TransformPackageAlias( const StringPiece& alias, const StringPiece& local_package) const { if (alias.empty()) { - return ExtractedPackage{local_package.ToString(), false /* private */}; + return ExtractedPackage{local_package.to_string(), false /* private */}; } const auto end_iter = package_aliases_.rend(); for (auto iter = package_aliases_.rbegin(); iter != end_iter; ++iter) { if (alias == iter->prefix) { if (iter->package.package.empty()) { - return ExtractedPackage{local_package.ToString(), - iter->package.private_namespace}; + return ExtractedPackage{local_package.to_string(), iter->package.private_namespace}; } return iter->package; } @@ -188,19 +189,18 @@ size_t XmlPullParser::attribute_count() const { /** * Extracts the namespace and name of an expanded element or attribute name. */ -static void SplitName(const char* name, std::string& out_ns, - std::string& out_name) { +static void SplitName(const char* name, std::string* out_ns, std::string* out_name) { const char* p = name; while (*p != 0 && *p != kXmlNamespaceSep) { p++; } if (*p == 0) { - out_ns = std::string(); - out_name = name; + out_ns->clear(); + out_name->assign(name); } else { - out_ns = StringPiece(name, (p - name)).ToString(); - out_name = p + 1; + out_ns->assign(name, (p - name)); + out_name->assign(p + 1); } } @@ -224,11 +224,11 @@ void XMLCALL XmlPullParser::StartElementHandler(void* user_data, EventData data = {Event::kStartElement, XML_GetCurrentLineNumber(parser->parser_), parser->depth_++}; - SplitName(name, data.data1, data.data2); + SplitName(name, &data.data1, &data.data2); while (*attrs) { Attribute attribute; - SplitName(*attrs++, attribute.namespace_uri, attribute.name); + SplitName(*attrs++, &attribute.namespace_uri, &attribute.name); attribute.value = *attrs++; // Insert in sorted order. @@ -245,9 +245,8 @@ void XMLCALL XmlPullParser::CharacterDataHandler(void* user_data, const char* s, int len) { XmlPullParser* parser = reinterpret_cast<XmlPullParser*>(user_data); - parser->event_queue_.push( - EventData{Event::kText, XML_GetCurrentLineNumber(parser->parser_), - parser->depth_, StringPiece(s, len).ToString()}); + parser->event_queue_.push(EventData{Event::kText, XML_GetCurrentLineNumber(parser->parser_), + parser->depth_, std::string(s, len)}); } void XMLCALL XmlPullParser::EndElementHandler(void* user_data, @@ -257,7 +256,7 @@ void XMLCALL XmlPullParser::EndElementHandler(void* user_data, EventData data = {Event::kEndElement, XML_GetCurrentLineNumber(parser->parser_), --(parser->depth_)}; - SplitName(name, data.data1, data.data2); + SplitName(name, &data.data1, &data.data2); // Move the data into the queue (no copy). parser->event_queue_.push(std::move(data)); |