[llvm-commits] [llvm] r151983 - /llvm/trunk/utils/TableGen/StringToOffsetTable.h
Benjamin Kramer
benny.kra at googlemail.com
Sat Mar 3 11:13:21 PST 2012
Author: d0k
Date: Sat Mar 3 13:13:20 2012
New Revision: 151983
URL: http://llvm.org/viewvc/llvm-project?rev=151983&view=rev
Log:
StringToOffsetTable: Allow uniquing the first element, add an option to skip appending a terminating null.
Modified:
llvm/trunk/utils/TableGen/StringToOffsetTable.h
Modified: llvm/trunk/utils/TableGen/StringToOffsetTable.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/TableGen/StringToOffsetTable.h?rev=151983&r1=151982&r2=151983&view=diff
==============================================================================
--- llvm/trunk/utils/TableGen/StringToOffsetTable.h (original)
+++ llvm/trunk/utils/TableGen/StringToOffsetTable.h Sat Mar 3 13:13:20 2012
@@ -26,16 +26,17 @@
std::string AggregateString;
public:
- unsigned GetOrAddStringOffset(StringRef Str) {
- unsigned &Entry = StringOffset[Str];
- if (Entry == 0) {
+ unsigned GetOrAddStringOffset(StringRef Str, bool appendZero = true) {
+ StringMapEntry<unsigned> &Entry = StringOffset.GetOrCreateValue(Str, -1U);
+ if (Entry.getValue() == -1U) {
// Add the string to the aggregate if this is the first time found.
- Entry = AggregateString.size();
+ Entry.setValue(AggregateString.size());
AggregateString.append(Str.begin(), Str.end());
- AggregateString += '\0';
+ if (appendZero)
+ AggregateString += '\0';
}
- return Entry;
+ return Entry.getValue();
}
void EmitString(raw_ostream &O) {
More information about the llvm-commits
mailing list