Remove expensive operator== from CKViewConfiguration & AccessibilityContext
Summary: `CKComponentAccessibilityContext::operator==` can be extremely expensive; it may invoke the `accessibilityLazyTextBlock` for its `CKComponentAccessibilityTextAttribute` members, and that can do a lot of string construction. I could refactor this to make it cheaper, e.g. by migrating to a function-pointer-and-context-object approach. But the easiest thing to do is to simply remove it; I don't think it's meaningfully used. Reviewed By: kevin0571 Differential Revision: D22322108 fbshipit-source-id: 82a0548d6dd28ec4adf2f3ba85705eabf665d100
This commit is contained in:
committed by
Facebook GitHub Bot
parent
7e7f431c66
commit
993dbef7b8
@@ -38,11 +38,6 @@
|
||||
sonar_additionalDataOverride;
|
||||
@end
|
||||
|
||||
static BOOL AccessibilityContextIsDefault(
|
||||
CKComponentAccessibilityContext accessibilityContext) {
|
||||
return accessibilityContext == CKComponentAccessibilityContext();
|
||||
}
|
||||
|
||||
static NSDictionary<NSString*, NSObject*>* AccessibilityContextDict(
|
||||
CKComponentAccessibilityContext accessibilityContext) {
|
||||
NSMutableDictionary<NSString*, NSObject*>* accessibilityDict =
|
||||
@@ -234,16 +229,16 @@ static CK::StaticMutex _mutex = CK_MUTEX_INITIALIZER;
|
||||
// Only add accessibility panel if accessibilityContext is not default
|
||||
CKComponentAccessibilityContext accessibilityContext =
|
||||
[self viewConfiguration].accessibilityContext();
|
||||
if (!AccessibilityContextIsDefault(accessibilityContext)) {
|
||||
[data addObject:[SKNamed
|
||||
newWithName:@"Accessibility"
|
||||
withValue:@{
|
||||
@"accessibilityContext" :
|
||||
AccessibilityContextDict(accessibilityContext),
|
||||
@"accessibilityEnabled" : SKMutableObject(
|
||||
@(CK::Component::Accessibility::
|
||||
IsAccessibilityEnabled())),
|
||||
}]];
|
||||
NSDictionary* accessibilityDict =
|
||||
AccessibilityContextDict(accessibilityContext);
|
||||
if ([accessibilityDict count]) {
|
||||
[data addObject:[SKNamed newWithName:@"Accessibility"
|
||||
withValue:@{
|
||||
@"accessibilityContext" : accessibilityDict,
|
||||
@"accessibilityEnabled" : SKMutableObject(
|
||||
@(CK::Component::Accessibility::
|
||||
IsAccessibilityEnabled())),
|
||||
}]];
|
||||
}
|
||||
if ([self respondsToSelector:@selector(sonar_additionalDataOverride)]) {
|
||||
[data addObjectsFromArray:[(id)self sonar_additionalDataOverride]];
|
||||
|
||||
Reference in New Issue
Block a user