From fe2a0123389adf0f2f66c413570d2daabdb5539d Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Thu, 25 Oct 2007 00:10:21 +0000 Subject: Implemented prototype serialization of pointers, including support for backpatching. Added Deserialize::ReadVal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43319 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Bitcode/Writer/Serialize.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'lib/Bitcode/Writer/Serialize.cpp') diff --git a/lib/Bitcode/Writer/Serialize.cpp b/lib/Bitcode/Writer/Serialize.cpp index 72939334bc..fbe1d1007c 100644 --- a/lib/Bitcode/Writer/Serialize.cpp +++ b/lib/Bitcode/Writer/Serialize.cpp @@ -57,6 +57,17 @@ void Serializer::EmitCStr(const char* s) { EmitCStr(s,s+strlen(s)); } +unsigned Serializer::getPtrId(void* ptr) { + MapTy::iterator I = PtrMap.find(ptr); + + if (I == PtrMap.end()) { + unsigned id = PtrMap.size(); + PtrMap[ptr] = id; + return id; + } + else return I->second; +} + #define INT_EMIT(TYPE)\ void SerializeTrait::Emit(Serializer&S, TYPE X) { S.EmitInt(X); } @@ -65,4 +76,3 @@ INT_EMIT(unsigned char) INT_EMIT(unsigned short) INT_EMIT(unsigned int) INT_EMIT(unsigned long) -INT_EMIT(unsigned long long) -- cgit v1.2.3-70-g09d2