Update -[NSMutableArray removeLastObject] (#433)

* Update `-[NSMutableArray removeLastObject]`

Updates the following implementation to avoid raising an exception if the array is already empty (or notifying observers if applicable):
 * `-[NSMutableArray removeLastObject]`
 * `-[GSMutableArray removeLastObject]`
 * `-[NSKeyValueMutableArray removeLastObject]`
 * `-[NSKeyValueIvarMutableArray removeLastObject]`

This brings the behavior of `-[NSMutableArray removeLastObject]` inline with the Apple implementation, improving compatibility for code bases which use both GNUStep and Apple objc/Foundation implementations.

* Add `-[NSMutableArray removeLastObject]` test case

Adds a test case to ensure `-[NSMutableArray removeLastObject]` does not raise an exception when called on an empty array.
This commit is contained in:
Earl Robsham 2024-08-10 17:44:02 -04:00 committed by GitHub
parent bf7ccc407d
commit a5ed5dbe11
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 22 additions and 8 deletions

View file

@ -116,6 +116,13 @@ int main()
[ma release];
PASS(5 == before && 0 == after, "-removeObjectsInArray: works for self")
}
{
NSMutableArray *ma = [NSMutableArray new];
PASS_RUNS([ma removeLastObject],
"-removeLastObject does not raise exceptions on empty array")
[ma release];
}
[arp release]; arp = nil;
return 0;
}