Modify the interfaces of all collection classes to be compatible with the

new lightweight generics implemenation. (Newer MacOS X/iOS code assuming 
the presence of the generics annotations can otherwise not be compiled with
GNUstep). This should be well-behaved under clang and gcc both. 

Fix NSCache which was copying the cache keys when it really shouldn't
have. Added a few test cases for eviction behaviour.

Few smaller tweaks to avoid compiler warnings.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@39406 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Niels Grewe 2016-02-22 21:04:18 +00:00
parent 4851131f49
commit 28c824a78a
14 changed files with 541 additions and 273 deletions

View file

@ -863,7 +863,7 @@ static SEL appSel;
}
- (void)getObjects: (__unsafe_unretained id[])objects
andKeys: (__unsafe_unretained id[])keys
andKeys: (__unsafe_unretained id<NSCopying>[])keys
{
int i=0;
FOR_IN(id, key, self)
@ -1242,7 +1242,7 @@ compareIt(id o1, id o2, void* context)
if (count > 0)
{
NSEnumerator *enumerator = [self keyEnumerator];
NSObject *k;
NSObject<NSCopying> *k = nil;
while ((k = [enumerator nextObject]) != nil)
{