Added special treatment of serializing NULL pointers.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43357 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Ted Kremenek
2007-10-25 18:42:52 +00:00
parent 2c8ca5c415
commit 2423e03ca8
4 changed files with 14 additions and 2 deletions

View File

@ -103,6 +103,11 @@ void Deserializer::RegisterPtr(unsigned PtrId,void* Ptr) {
void Deserializer::ReadPtr(void*& PtrRef) {
unsigned PtrId = ReadInt();
if (PtrId == 0) {
PtrRef = NULL;
return;
}
BPatchEntry& E = BPatchMap[PtrId];
if (E.Ptr == NULL) {

View File

@ -58,10 +58,13 @@ void Serializer::EmitCStr(const char* s) {
}
unsigned Serializer::getPtrId(void* ptr) {
if (!ptr)
return 0;
MapTy::iterator I = PtrMap.find(ptr);
if (I == PtrMap.end()) {
unsigned id = PtrMap.size();
unsigned id = PtrMap.size()+1;
PtrMap[ptr] = id;
return id;
}