[Serialization] Filter Objective-C methods by mangled name rather than type ID.

Module files store all of the Objective-C method entrypoints in a
central table indexed by selector, then filter the results based on
the specific class being requested. Rather than storing the class as
a TypeID---which requires a bunch of deserialization---store its
mangled name. This allows us to deserialize less, and causes circular
deserialization in rdar://problem/31615640.
This commit is contained in:
Doug Gregor
2017-04-18 11:38:39 -07:00
parent 54f132c487
commit f6f547469d
4 changed files with 33 additions and 22 deletions

View File

@@ -54,7 +54,7 @@ const uint16_t VERSION_MAJOR = 0;
/// in source control, you should also update the comment to briefly
/// describe what change you made. The content of this comment isn't important;
/// it just ensures a conflict if two people change the module format.
const uint16_t VERSION_MINOR = 334; // Last change: AnyObject bit in ProtocolCompositionType
const uint16_t VERSION_MINOR = 335; // Last change: no type in objc method table
using DeclID = PointerEmbeddedInt<unsigned, 31>;
using DeclIDField = BCFixed<31>;