Loading...
--- dyld/dyld-1162/cache_builder/IMPCaches.cpp
+++ dyld/dyld-1122.1/cache_builder/IMPCaches.cpp
@@ -730,7 +730,7 @@
(trackedArray.find(classNameStr) != trackedArray.end());
}
-bool IMPCachesBuilder::addMethod(IMPCaches::ClassData* classDataPtr, std::string_view methodName, std::string_view installName, std::string_view className, std::string_view catName, bool inlined, bool fromFlattening) {
+void IMPCachesBuilder::addMethod(IMPCaches::ClassData* classDataPtr, std::string_view methodName, std::string_view installName, std::string_view className, std::string_view catName, bool inlined, bool fromFlattening) {
std::string_view methodNameView(methodName);
auto [selectorIterator, success] = selectors.map.try_emplace(methodNameView, std::make_unique<Selector>());
@@ -763,8 +763,6 @@
thisSelectorData->classes.push_back(classDataPtr);
classDataPtr->methods.push_back(m);
}
-
- return !exists;
}
void IMPCachesBuilder::inlineMethodIfNeeded(IMPCaches::ClassData* classToInlineIn, std::string_view classToInlineFrom, std::string_view catToInlineFrom, std::string_view installNameToInlineFrom, std::string_view name, std::set<Selector*>& seenSelectors, bool isFlattening) {
@@ -871,13 +869,10 @@
thisData->isMetaclass = theClass.isMetaClass;
thisData->shouldGenerateImpCache = interesting;
- bool duplicateMethod = false;
for ( const imp_caches::Method& objcMethod : objcClass.methods ) {
const bool inlined = false;
const bool fromFlattening = false;
- bool added = addMethod(thisDataPtr, objcMethod.name, dylib.inputDylib->installName, theClass.className, "", inlined, fromFlattening);
- if ( !added )
- duplicateMethod = true;
+ addMethod(thisDataPtr, objcMethod.name, dylib.inputDylib->installName, theClass.className, "", inlined, fromFlattening);
}
ClassKey key {
@@ -886,7 +881,7 @@
};
assert(dylib.impCachesClassData.find(key) == dylib.impCachesClassData.end());
- if (duplicateMethod || (duplicateClasses.find(key) != duplicateClasses.end()) ) {
+ if (duplicateClasses.find(key) != duplicateClasses.end()) {
// We can't just set shouldGenerateImpCache to false ; we do it later
// when we have built the flattening hierarchies in order to drop
// any related classes as well.