aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Bitcode/Serialize.h
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2007-11-13 00:13:57 +0000
committerTed Kremenek <kremenek@apple.com>2007-11-13 00:13:57 +0000
commitdd479dd3fe396be3151349ee01be839fcb92e88e (patch)
tree5a1a67da0ba09b13a804954dc9541adaa2067e73 /include/llvm/Bitcode/Serialize.h
parent553d22c29e74f58c15df32f7e5d38bf13b7f2e92 (diff)
downloadexternal_llvm-dd479dd3fe396be3151349ee01be839fcb92e88e.zip
external_llvm-dd479dd3fe396be3151349ee01be839fcb92e88e.tar.gz
external_llvm-dd479dd3fe396be3151349ee01be839fcb92e88e.tar.bz2
Fixed bug with inconsistent serialization/deserialization in matching
calls to BatchEmitOwnedPtrs and BatchReadOwnedPtrs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44032 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Bitcode/Serialize.h')
-rw-r--r--include/llvm/Bitcode/Serialize.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/include/llvm/Bitcode/Serialize.h b/include/llvm/Bitcode/Serialize.h
index 2cd597e..0b99c57 100644
--- a/include/llvm/Bitcode/Serialize.h
+++ b/include/llvm/Bitcode/Serialize.h
@@ -93,6 +93,23 @@ public:
for (unsigned i = 0; i < NumPtrs; ++i)
if (Ptrs[i]) SerializeTrait<T>::Emit(*this,*Ptrs[i]);
}
+
+ template <typename T1, typename T2, typename T3>
+ void BatchEmitOwnedPtrs(unsigned NumT1Ptrs, T1* const * Ptrs,
+ T2* p2, T3* p3) {
+
+ for (unsigned i = 0; i < NumT1Ptrs; ++i)
+ EmitPtr(Ptrs[i]);
+
+ EmitPtr(p2);
+ EmitPtr(p3);
+
+ for (unsigned i = 0; i < NumT1Ptrs; ++i)
+ if (Ptrs[i]) SerializeTrait<T1>::Emit(*this,*Ptrs[i]);
+
+ if (p2) SerializeTrait<T2>::Emit(*this,*p2);
+ if (p3) SerializeTrait<T3>::Emit(*this,*p3);
+ }
bool isRegistered(const void* p) const;