- Fix a broken link
- Some spelling fixes
- Remove an unnecessary "amortized"
- Don't say "log(n) random access"; "random access" means O(1)
- Make MSF overview a bit more concise
Differential Revision: https://reviews.llvm.org/D61196
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@359714
91177308-0d34-0410-b5e6-
96231b3b80d8
- **PdbDllRbld** - Unknown
-- **MFCTypeServerIndex** - The length of the :ref:dbi_mfc_type_server_substream
+- **MFCTypeServerIndex** - The length of the
+ :ref:`dbi_mfc_type_server_substream`.
- **Flags** - A bitfield with the following layout, containing various
information about how the program was built:
within the TPI Hash Stream of the Type Index Offsets Buffer. This is a list of
pairs of uint32_t's where the first value is a :ref:`Type Index <type_indices>`
and the second value is the offset in the type record data of the type with this
- index. This can be used to do a binary search followed bin a linear search to
- get amortized O(log n) lookup by type index.
+ index. This can be used to do a binary search followed by a linear search to
+ get O(log n) lookup by type index.
- **HashAdjBufferOffset / HashAdjBufferLength** - The offset and size within
the TPI hash stream of a serialized hash table whose keys are the hash values
of such records (e.g. the length of the array) can be determined by computing the
value ``Header.TypeIndexEnd - Header.TypeIndexBegin``.
-log(n) random access is provided by way of the Type Index Offsets array (if present)
-described previously.
+O(log(n)) access is provided by way of the Type Index Offsets array (if
+present) described previously.
The MSF Container
-----------------
-A PDB file is really just a special case of an MSF (Multi-Stream Format) file.
-An MSF file is actually a miniature "file system within a file". It contains
-multiple streams (aka files) which can represent arbitrary data, and these
-streams are divided into blocks which may not necessarily be contiguously
-laid out within the file (aka fragmented). Additionally, the MSF contains a
-stream directory (aka MFT) which describes how the streams (files) are laid
-out within the MSF.
+A PDB file is an MSF (Multi-Stream Format) file. An MSF file is a "file system
+within a file". It contains multiple streams (aka files) which can represent
+arbitrary data, and these streams are divided into blocks which may not
+necessarily be contiguously laid out within the MSF container file.
+Additionally, the MSF contains a stream directory (aka MFT) which describes how
+the streams (files) are laid out within the MSF.
For more information about the MSF container format, stream directory, and
block layout, see :doc:`MsfFile`.
short Padding; // Pad to 4 bytes.
char Reserved[8];
};
-
static_assert(sizeof(SrcHeaderBlockEntry) == 40, "Incorrect struct size!");
} // namespace pdb