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

@ -86,6 +86,10 @@ public:
template <typename T>
inline T* ReadOwnedPtr() {
unsigned PtrId = ReadInt();
if (PtrId == 0)
return NULL;
T* x = SerializeTrait<T>::Materialize(*this);
RegisterPtr(PtrId,x);
return x;

View File

@ -47,7 +47,7 @@ public:
template <typename T>
void EmitOwnedPtr(T* ptr) {
EmitPtr(ptr);
SerializeTrait<T>::Emit(*this,*ptr);
if (ptr) SerializeTrait<T>::Emit(*this,*ptr);
}
void Flush() { if (inRecord()) EmitRecord(); }