Keep local variables to ensure correct values during recursion.

This commit is contained in:
Riccardo Mottola 2021-10-25 23:22:32 +02:00
parent 5bdf536733
commit 5e837b6858
2 changed files with 22 additions and 9 deletions

View file

@ -1,3 +1,8 @@
2021-10-25 Riccardo Mottola <rm@gnu.org>
* Source/NSTextStorage.m:
Keep local variables to ensure correct values during recursion.
2021-10-21 Gregory John Casamento <greg.casamento@gmail.com>
* Headers/AppKit/NSGlyphInfo.[hm]: Class which provides info about

View file

@ -253,6 +253,21 @@ static NSNotificationCenter *nc = nil;
}
}
/*
* we make a local copy to ensure recursing in layoutManagers has
* correct values
*/
NSRange editedRange = _editedRange;
int editedDelta = _editedDelta;
unsigned editedMask = _editedMask;
/*
* edited values reset to be used again in the next pass.
*/
_editedRange = NSMakeRange (0, 0);
_editedDelta = 0;
_editedMask = 0;
/*
* Calls textStorage:edited:range:changeInLength:invalidatedRange: for
* every layoutManager.
@ -262,17 +277,10 @@ static NSNotificationCenter *nc = nil;
{
GSLayoutManager *lManager = [_layoutManagers objectAtIndex: i];
[lManager textStorage: self edited: _editedMask range: r
changeInLength: _editedDelta invalidatedRange: _editedRange];
[lManager textStorage: self edited: editedMask range: r
changeInLength: editedDelta invalidatedRange: editedRange];
}
/*
* edited values reset to be used again in the next pass.
*/
_editedRange = NSMakeRange (0, 0);
_editedDelta = 0;
_editedMask = 0;
}
/*