I started down the path of trying to merge the serialization and deserialization for types and symbols. This is difficult as it stands, because all of the "real" PDB code uses StreamInterface stuff to avoid having to copy entire streams, which could be hundreds of MB. But the serialization code all uses ArrayRef for everything. This changes everything to use StreamReader. In the process, I found lots of duplicated code in RecordSerialization.cpp and RecordSerailization.h that was already written in StreamReader.cpp. All of that has been removed since everything is now using StreamReader.
Details
Details
Diff Detail
Diff Detail