diff options
author | Ted Kremenek <kremenek@apple.com> | 2007-10-24 19:06:02 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2007-10-24 19:06:02 +0000 |
commit | a2bfb91c55a9baeb368dec97cd5971484b1d0656 (patch) | |
tree | 7547f6e35684ee150ac13cea47f928a8bc3489c7 /Basic/IdentifierTable.cpp | |
parent | a83cc33195c7d1fa31d6809416eaa4c3ebf036eb (diff) |
Modified current clients of Bitcode-Object serialization to use the
new split-header file configuration (Serialize.h and Deserialize.h)
now in place in the core LLVM repository.
Removed unneeded SerializeTrait specializations for enums in
TokenKinds.h
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43306 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'Basic/IdentifierTable.cpp')
-rw-r--r-- | Basic/IdentifierTable.cpp | 59 |
1 files changed, 31 insertions, 28 deletions
diff --git a/Basic/IdentifierTable.cpp b/Basic/IdentifierTable.cpp index 760dcf4349..bbab868267 100644 --- a/Basic/IdentifierTable.cpp +++ b/Basic/IdentifierTable.cpp @@ -16,7 +16,8 @@ #include "clang/Basic/LangOptions.h" #include "llvm/ADT/FoldingSet.h" #include "llvm/ADT/DenseMap.h" -#include "llvm/Bitcode/Serialization.h" +#include "llvm/Bitcode/Serialize.h" +#include "llvm/Bitcode/Deserialize.h" using namespace clang; @@ -381,30 +382,25 @@ SelectorTable::~SelectorTable() { // Serialization for IdentifierInfo and IdentifierTable. //===----------------------------------------------------------------------===// -void llvm::SerializeTrait<IdentifierInfo>::Serialize(llvm::Serializer& S, +void llvm::SerializeTrait<IdentifierInfo>::Emit(llvm::Serializer& S, const IdentifierInfo& I) { - S.Emit<tok::TokenKind>(I.getTokenID()); - S.EmitInt(I.getBuiltinID(),9); - S.Emit<tok::ObjCKeywordKind>(I.getObjCKeywordID()); - S.Emit(I.hasMacroDefinition()); - S.Emit(I.isExtensionToken()); - S.Emit(I.isPoisoned()); - S.Emit(I.isOtherTargetMacro()); - S.Emit(I.isCPlusPlusOperatorKeyword()); - S.Emit(I.isNonPortableBuiltin()); + S.EmitInt(I.getTokenID()); + S.EmitInt(I.getBuiltinID()); + S.EmitInt(I.getObjCKeywordID()); + S.EmitBool(I.hasMacroDefinition()); + S.EmitBool(I.isExtensionToken()); + S.EmitBool(I.isPoisoned()); + S.EmitBool(I.isOtherTargetMacro()); + S.EmitBool(I.isCPlusPlusOperatorKeyword()); + S.EmitBool(I.isNonPortableBuiltin()); } -void llvm::SerializeTrait<IdentifierInfo>::Deserialize(llvm::Deserializer& D, - IdentifierInfo& I) { - tok::TokenKind X; - I.setTokenID(D.Read<tok::TokenKind>(X)); - - I.setBuiltinID(D.ReadInt(9)); - - tok::ObjCKeywordKind Y; - I.setObjCKeywordID(D.Read<tok::ObjCKeywordKind>(Y)); - +void llvm::SerializeTrait<IdentifierInfo>::Read(llvm::Deserializer& D, + IdentifierInfo& I) { + I.setTokenID((tok::TokenKind) D.ReadInt()); + I.setBuiltinID(D.ReadInt()); + I.setObjCKeywordID((tok::ObjCKeywordKind) D.ReadInt()); I.setHasMacroDefinition(D.ReadBool()); I.setIsExtensionToken(D.ReadBool()); I.setIsPoisoned(D.ReadBool()); @@ -413,27 +409,34 @@ void llvm::SerializeTrait<IdentifierInfo>::Deserialize(llvm::Deserializer& D, I.setNonPortableBuiltin(D.ReadBool()); } -void llvm::SerializeTrait<IdentifierTable>::Serialize(llvm::Serializer& S, - const IdentifierTable& T){ +void llvm::SerializeTrait<IdentifierTable>::Emit(llvm::Serializer& S, + const IdentifierTable& T){ S.Emit<unsigned>(T.size()); for (clang::IdentifierTable::iterator I=T.begin(), E=T.end(); I != E; ++I) { - S.EmitCString(I->getKeyData()); + S.EmitCStr(I->getKeyData()); S.Emit(I->getValue()); } } -void llvm::SerializeTrait<IdentifierTable>::Deserialize(llvm::Deserializer& D, - IdentifierTable& T) { +void llvm::SerializeTrait<IdentifierTable>::Read(llvm::Deserializer& D, + IdentifierTable& T) { unsigned len = D.ReadInt(); std::vector<char> buff; buff.reserve(200); for (unsigned i = 0; i < len; ++i) { - D.ReadCString(buff); + D.ReadCStr(buff); IdentifierInfo& Info = T.get(&buff[0],&buff[0]+buff.size()); D.Read(Info); } } - + +IdentifierTable* +llvm::SerializeTrait<IdentifierTable>::Materialize(llvm::Deserializer& D) +{ + IdentifierTable* t = new IdentifierTable(); + D.Read(*t); + return t; +} |