X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FSupport%2FStringExtras.cpp;h=d77ad7f55a18e11cea396d59990dd01d557531a2;hb=3f0e8837be1414981558186f9688c4ff35dc1815;hp=785e0ec4c633e33fad960b783965e1b2945c6be7;hpb=7dd6107fcc952758ee63d5784a9e7afa9b6dea93;p=oota-llvm.git diff --git a/lib/Support/StringExtras.cpp b/lib/Support/StringExtras.cpp index 785e0ec4c63..d77ad7f55a1 100644 --- a/lib/Support/StringExtras.cpp +++ b/lib/Support/StringExtras.cpp @@ -39,13 +39,11 @@ std::pair llvm::getToken(StringRef Source, StringRef Delimiters) { // Figure out where the token starts. StringRef::size_type Start = Source.find_first_not_of(Delimiters); - if (Start == StringRef::npos) Start = Source.size(); // Find the next occurrence of the delimiter. StringRef::size_type End = Source.find_first_of(Delimiters, Start); - if (End == StringRef::npos) End = Source.size(); - return std::make_pair(Source.substr(Start, End), Source.substr(End)); + return std::make_pair(Source.slice(Start, End), Source.substr(End)); } /// SplitString - Split up the specified string according to the specified @@ -53,31 +51,9 @@ std::pair llvm::getToken(StringRef Source, void llvm::SplitString(StringRef Source, SmallVectorImpl &OutFragments, StringRef Delimiters) { - StringRef S2, S; - tie(S2, S) = getToken(Source, Delimiters); - while (!S2.empty()) { - OutFragments.push_back(S2); - tie(S2, S) = getToken(S, Delimiters); + std::pair S = getToken(Source, Delimiters); + while (!S.first.empty()) { + OutFragments.push_back(S.first); + S = getToken(S.second, Delimiters); } } - -void llvm::StringRef::split(SmallVectorImpl &A, - StringRef Separators, int MaxSplit, - bool KeepEmpty) const { - StringRef rest = *this; - - // rest.data() is used to distinguish cases like "a," that splits into - // "a" + "" and "a" that splits into "a" + 0. - for (int splits = 0; - rest.data() != NULL && (MaxSplit < 0 || splits < MaxSplit); - ++splits) { - std::pair p = rest.split(Separators); - - if (p.first.size() != 0 || KeepEmpty) - A.push_back(p.first); - rest = p.second; - } - // If we have a tail left, add it. - if (rest.data() != NULL && (rest.size() != 0 || KeepEmpty)) - A.push_back(rest); -}