Skip to content

Commit

Permalink
Revert "Cherry-pick e0e146f. rdar://problem/104881175"
Browse files Browse the repository at this point in the history
  • Loading branch information
rjepstein committed Feb 7, 2023
1 parent 9ebd6bb commit 612d9f1
Showing 1 changed file with 34 additions and 34 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1036,12 +1036,12 @@ static void AXAttributedStringAppendText(NSMutableAttributedString* attrString,

- (NSAttributedString *)doAXAttributedStringForTextMarkerRange:(AXTextMarkerRangeRef)textMarkerRange spellCheck:(BOOL)spellCheck
{
return Accessibility::retrieveAutoreleasedValueFromMainThread<NSAttributedString *>([textMarkerRange = retainPtr(textMarkerRange), &spellCheck, protectedSelf = retainPtr(self)] () -> RetainPtr<NSAttributedString> {
return Accessibility::retrieveAutoreleasedValueFromMainThread<NSAttributedString *>([&textMarkerRange, &spellCheck, protectedSelf = retainPtr(self)] () -> RetainPtr<NSAttributedString> {
auto* backingObject = protectedSelf.get().axBackingObject;
if (!backingObject)
return nil;

auto range = rangeForTextMarkerRange(backingObject->axObjectCache(), textMarkerRange.get());
auto range = rangeForTextMarkerRange(backingObject->axObjectCache(), textMarkerRange);
if (!range)
return nil;
auto attrString = adoptNS([[NSMutableAttributedString alloc] init]);
Expand Down Expand Up @@ -3085,11 +3085,11 @@ - (void)_accessibilitySetValue:(id)value forAttribute:(NSString *)attributeName
array = value;

// handle the command
if ([attributeName isEqualToString:@"AXSelectedTextMarkerRange"]) {
if ([attributeName isEqualToString: @"AXSelectedTextMarkerRange"]) {
ASSERT(textMarkerRange);
Accessibility::performFunctionOnMainThread([textMarkerRange = retainPtr(textMarkerRange), protectedSelf = retainPtr(self)] {
Accessibility::performFunctionOnMainThread([&textMarkerRange, protectedSelf = retainPtr(self)] {
if (auto* backingObject = protectedSelf.get().axBackingObject)
backingObject->setSelectedVisiblePositionRange(visiblePositionRangeForTextMarkerRange(backingObject->axObjectCache(), textMarkerRange.get()));
backingObject->setSelectedVisiblePositionRange(visiblePositionRangeForTextMarkerRange(backingObject->axObjectCache(), textMarkerRange));
});
} else if ([attributeName isEqualToString: NSAccessibilityFocusedAttribute]) {
backingObject->setFocused([number boolValue]);
Expand Down Expand Up @@ -3188,13 +3188,13 @@ - (NSInteger)_indexForTextMarker:(AXTextMarkerRef)marker
if (!marker)
return NSNotFound;

return Accessibility::retrieveValueFromMainThread<NSInteger>([marker = retainPtr(marker), protectedSelf = retainPtr(self)] () -> NSInteger {
return Accessibility::retrieveValueFromMainThread<NSInteger>([&marker, protectedSelf = retainPtr(self)] () -> NSInteger {
auto* backingObject = protectedSelf.get().axBackingObject;
if (!backingObject)
return NSNotFound;

if (auto* cache = backingObject->axObjectCache()) {
auto characterOffset = characterOffsetForTextMarker(cache, marker.get());
CharacterOffset characterOffset = characterOffsetForTextMarker(cache, marker);
auto range = cache->rangeForUnorderedCharacterOffsets(characterOffset, characterOffset);
if (!range)
return NSNotFound;
Expand Down Expand Up @@ -3307,7 +3307,7 @@ static void formatForDebugger(const VisiblePositionRange& range, char* buffer, u

- (AXTextMarkerRangeRef)textMarkerRangeAtTextMarker:(AXTextMarkerRef)textMarker forUnit:(TextUnit)textUnit
{
return Accessibility::retrieveAutoreleasedValueFromMainThread<AXTextMarkerRangeRef>([textMarker = retainPtr(textMarker), &textUnit, protectedSelf = retainPtr(self)] () -> RetainPtr<AXTextMarkerRangeRef> {
return Accessibility::retrieveAutoreleasedValueFromMainThread<AXTextMarkerRangeRef>([&textMarker, &textUnit, protectedSelf = retainPtr(self)] () -> RetainPtr<AXTextMarkerRangeRef> {
auto* backingObject = protectedSelf.get().axBackingObject;
if (!backingObject)
return nil;
Expand All @@ -3316,7 +3316,7 @@ - (AXTextMarkerRangeRef)textMarkerRangeAtTextMarker:(AXTextMarkerRef)textMarker
if (!cache)
return nil;

auto characterOffset = characterOffsetForTextMarker(cache, textMarker.get());
auto characterOffset = characterOffsetForTextMarker(cache, textMarker);
std::optional<SimpleRange> range;
switch (textUnit) {
case TextUnit::LeftWord:
Expand All @@ -3342,7 +3342,7 @@ - (AXTextMarkerRangeRef)textMarkerRangeAtTextMarker:(AXTextMarkerRef)textMarker

- (AXTextMarkerRangeRef)lineTextMarkerRangeForTextMarker:(AXTextMarkerRef)textMarker forUnit:(TextUnit)textUnit
{
return Accessibility::retrieveAutoreleasedValueFromMainThread<AXTextMarkerRangeRef>([textMarker = retainPtr(textMarker), &textUnit, protectedSelf = retainPtr(self)] () -> RetainPtr<AXTextMarkerRangeRef> {
return Accessibility::retrieveAutoreleasedValueFromMainThread<AXTextMarkerRangeRef>([&textMarker, &textUnit, protectedSelf = retainPtr(self)] () -> RetainPtr<AXTextMarkerRangeRef> {
auto* backingObject = protectedSelf.get().axBackingObject;
if (!backingObject)
return nil;
Expand All @@ -3351,7 +3351,7 @@ - (AXTextMarkerRangeRef)lineTextMarkerRangeForTextMarker:(AXTextMarkerRef)textMa
if (!cache)
return nil;

AXTextMarker marker(textMarker.get());
AXTextMarker marker(textMarker);
VisiblePositionRange visiblePositionRange;
switch (textUnit) {
case TextUnit::Line:
Expand All @@ -3374,7 +3374,7 @@ - (AXTextMarkerRangeRef)lineTextMarkerRangeForTextMarker:(AXTextMarkerRef)textMa

- (AXTextMarkerRef)textMarkerForTextMarker:(AXTextMarkerRef)textMarker atUnit:(TextUnit)textUnit
{
return Accessibility::retrieveAutoreleasedValueFromMainThread<AXTextMarkerRef>([textMarker = retainPtr(textMarker), &textUnit, protectedSelf = retainPtr(self)] () -> RetainPtr<AXTextMarkerRef> {
return Accessibility::retrieveAutoreleasedValueFromMainThread<AXTextMarkerRef>([&textMarker, &textUnit, protectedSelf = retainPtr(self)] () -> RetainPtr<AXTextMarkerRef> {
auto* backingObject = protectedSelf.get().axBackingObject;
if (!backingObject)
return nil;
Expand All @@ -3383,7 +3383,7 @@ - (AXTextMarkerRef)textMarkerForTextMarker:(AXTextMarkerRef)textMarker atUnit:(T
if (!cache)
return nil;

auto oldOffset = characterOffsetForTextMarker(cache, textMarker.get());
CharacterOffset oldOffset = characterOffsetForTextMarker(cache, textMarker);
CharacterOffset newOffset;
switch (textUnit) {
case TextUnit::NextWordEnd:
Expand All @@ -3405,11 +3405,11 @@ - (AXTextMarkerRef)textMarkerForTextMarker:(AXTextMarkerRef)textMarker atUnit:(T
newOffset = cache->previousParagraphStartCharacterOffset(oldOffset);
break;
case TextUnit::NextLineEnd: {
auto visiblePosition = visiblePositionForTextMarker(cache, textMarker.get());
auto visiblePosition = visiblePositionForTextMarker(cache, textMarker);
return textMarkerForVisiblePosition(cache, backingObject->nextLineEndPosition(visiblePosition));
}
case TextUnit::PreviousLineStart: {
auto visiblePosition = visiblePositionForTextMarker(cache, textMarker.get());
auto visiblePosition = visiblePositionForTextMarker(cache, textMarker);
return textMarkerForVisiblePosition(cache, backingObject->previousLineStartPosition(visiblePosition));
}
default:
Expand Down Expand Up @@ -3644,12 +3644,12 @@ - (id)accessibilityAttributeValue:(NSString*)attribute forParameter:(id)paramete
}

if ([attribute isEqualToString:NSAccessibilityTextMarkerIsValidParameterizedAttribute]) {
bool result = Accessibility::retrieveValueFromMainThread<bool>([textMarker = retainPtr(textMarker), protectedSelf = retainPtr(self)] () -> bool {
bool result = Accessibility::retrieveValueFromMainThread<bool>([&textMarker, protectedSelf = retainPtr(self)] () -> bool {
auto* backingObject = protectedSelf.get().axBackingObject;
if (!backingObject)
return false;

return !visiblePositionForTextMarker(backingObject->axObjectCache(), textMarker.get()).isNull();
return !visiblePositionForTextMarker(backingObject->axObjectCache(), textMarker).isNull();
});

return [NSNumber numberWithBool:result];
Expand Down Expand Up @@ -3683,12 +3683,12 @@ - (id)accessibilityAttributeValue:(NSString*)attribute forParameter:(id)paramete
}

if ([attribute isEqualToString:@"AXLineForTextMarker"]) {
int result = Accessibility::retrieveValueFromMainThread<int>([textMarker = retainPtr(textMarker), protectedSelf = retainPtr(self)] () -> int {
int result = Accessibility::retrieveValueFromMainThread<int>([&textMarker, protectedSelf = retainPtr(self)] () -> int {
auto* backingObject = protectedSelf.get().axBackingObject;
if (!backingObject)
return -1;

auto visiblePos = visiblePositionForTextMarker(backingObject->axObjectCache(), textMarker.get());
auto visiblePos = visiblePositionForTextMarker(backingObject->axObjectCache(), textMarker);
return backingObject->lineForPosition(visiblePos);
});
return @(result);
Expand All @@ -3709,12 +3709,12 @@ - (id)accessibilityAttributeValue:(NSString*)attribute forParameter:(id)paramete
}

if ([attribute isEqualToString:@"AXStringForTextMarkerRange"]) {
return Accessibility::retrieveValueFromMainThread<String>([textMarkerRange = retainPtr(textMarkerRange), protectedSelf = retainPtr(self)] () -> String {
return Accessibility::retrieveValueFromMainThread<String>([&textMarkerRange, protectedSelf = retainPtr(self)] () -> String {
auto* backingObject = protectedSelf.get().axBackingObject;
if (!backingObject)
return String();

auto range = rangeForTextMarkerRange(backingObject->axObjectCache(), textMarkerRange.get());
auto range = rangeForTextMarkerRange(backingObject->axObjectCache(), textMarkerRange);
return range ? backingObject->stringForRange(*range) : String();
});
}
Expand All @@ -3734,12 +3734,12 @@ - (id)accessibilityAttributeValue:(NSString*)attribute forParameter:(id)paramete
}

if ([attribute isEqualToString:@"AXBoundsForTextMarkerRange"]) {
NSRect rect = Accessibility::retrieveValueFromMainThread<NSRect>([textMarkerRange = retainPtr(textMarkerRange), protectedSelf = retainPtr(self)] () -> NSRect {
NSRect rect = Accessibility::retrieveValueFromMainThread<NSRect>([&textMarkerRange, protectedSelf = retainPtr(self)] () -> NSRect {
auto* backingObject = protectedSelf.get().axBackingObject;
if (!backingObject)
return CGRectZero;

auto range = rangeForTextMarkerRange(backingObject->axObjectCache(), textMarkerRange.get());
auto range = rangeForTextMarkerRange(backingObject->axObjectCache(), textMarkerRange);
if (!range)
return CGRectZero;

Expand Down Expand Up @@ -3831,7 +3831,7 @@ - (id)accessibilityAttributeValue:(NSString*)attribute forParameter:(id)paramete
AXTextMarkerRef textMarker1 = (AXTextMarkerRef)[array objectAtIndex:0];
AXTextMarkerRef textMarker2 = (AXTextMarkerRef)[array objectAtIndex:1];

return Accessibility::retrieveAutoreleasedValueFromMainThread<id>([textMarker1 = retainPtr(textMarker1), textMarker2 = retainPtr(textMarker2), protectedSelf = retainPtr(self)] () -> RetainPtr<id> {
return Accessibility::retrieveAutoreleasedValueFromMainThread<id>([&textMarker1, &textMarker2, protectedSelf = retainPtr(self)] () -> RetainPtr<id> {
auto* backingObject = protectedSelf.get().axBackingObject;
if (!backingObject)
return nil;
Expand All @@ -3840,16 +3840,16 @@ - (id)accessibilityAttributeValue:(NSString*)attribute forParameter:(id)paramete
if (!cache)
return nil;

auto characterOffset1 = characterOffsetForTextMarker(cache, textMarker1.get());
auto characterOffset2 = characterOffsetForTextMarker(cache, textMarker2.get());
auto characterOffset1 = characterOffsetForTextMarker(cache, textMarker1);
auto characterOffset2 = characterOffsetForTextMarker(cache, textMarker2);
auto range = cache->rangeForUnorderedCharacterOffsets(characterOffset1, characterOffset2);

return (id)textMarkerRangeFromRange(cache, range);
});
}

if ([attribute isEqualToString:@"AXNextTextMarkerForTextMarker"]) {
return Accessibility::retrieveAutoreleasedValueFromMainThread<id>([textMarker = retainPtr(textMarker), protectedSelf = retainPtr(self)] () -> RetainPtr<id> {
return Accessibility::retrieveAutoreleasedValueFromMainThread<id>([&textMarker, protectedSelf = retainPtr(self)] () -> RetainPtr<id> {
auto* backingObject = protectedSelf.get().axBackingObject;
if (!backingObject)
return nil;
Expand All @@ -3858,13 +3858,13 @@ - (id)accessibilityAttributeValue:(NSString*)attribute forParameter:(id)paramete
if (!cache)
return nil;

AXTextMarker marker(textMarker.get());
AXTextMarker marker(textMarker);
return nextTextMarker(cache, marker).bridgingAutorelease();
});
}

if ([attribute isEqualToString:@"AXPreviousTextMarkerForTextMarker"]) {
return Accessibility::retrieveAutoreleasedValueFromMainThread<id>([textMarker = retainPtr(textMarker), protectedSelf = retainPtr(self)] () -> RetainPtr<id> {
return Accessibility::retrieveAutoreleasedValueFromMainThread<id>([&textMarker, protectedSelf = retainPtr(self)] () -> RetainPtr<id> {
auto* backingObject = protectedSelf.get().axBackingObject;
if (!backingObject)
return nil;
Expand All @@ -3873,7 +3873,7 @@ - (id)accessibilityAttributeValue:(NSString*)attribute forParameter:(id)paramete
if (!cache)
return nil;

AXTextMarker marker(textMarker.get());
AXTextMarker marker(textMarker);
return previousTextMarker(cache, marker).bridgingAutorelease();
});
}
Expand Down Expand Up @@ -3921,7 +3921,7 @@ - (id)accessibilityAttributeValue:(NSString*)attribute forParameter:(id)paramete
return (id)[self textMarkerForTextMarker:textMarker atUnit:TextUnit::PreviousParagraphStart];

if ([attribute isEqualToString:@"AXStyleTextMarkerRangeForTextMarker"]) {
return Accessibility::retrieveAutoreleasedValueFromMainThread<id>([textMarker = retainPtr(textMarker), protectedSelf = retainPtr(self)] () -> RetainPtr<id> {
return Accessibility::retrieveAutoreleasedValueFromMainThread<id>([&textMarker, protectedSelf = retainPtr(self)] () -> RetainPtr<id> {
auto* backingObject = protectedSelf.get().axBackingObject;
if (!backingObject)
return nil;
Expand All @@ -3930,20 +3930,20 @@ - (id)accessibilityAttributeValue:(NSString*)attribute forParameter:(id)paramete
if (!cache)
return nil;

auto visiblePos = visiblePositionForTextMarker(cache, textMarker.get());
VisiblePosition visiblePos = visiblePositionForTextMarker(cache, textMarker);
VisiblePositionRange vpRange = backingObject->styleRangeForPosition(visiblePos);

return (id)textMarkerRangeFromVisiblePositions(cache, vpRange.start, vpRange.end);
});
}

if ([attribute isEqualToString:@"AXLengthForTextMarkerRange"]) {
int length = Accessibility::retrieveValueFromMainThread<int>([textMarkerRange = retainPtr(textMarkerRange), protectedSelf = retainPtr(self)] () -> int {
int length = Accessibility::retrieveValueFromMainThread<int>([&textMarkerRange, protectedSelf = retainPtr(self)] () -> int {
auto* backingObject = protectedSelf.get().axBackingObject;
if (!backingObject)
return 0;

auto range = rangeForTextMarkerRange(backingObject->axObjectCache(), textMarkerRange.get());
auto range = rangeForTextMarkerRange(backingObject->axObjectCache(), textMarkerRange);
if (!range)
return 0;
return AXObjectCache::lengthForRange(SimpleRange { *range });
Expand Down

0 comments on commit 612d9f1

Please sign in to comment.