Some DO fixes ... don;'t use the -getObjects: method with a proxy as it

can't pass back distant items into a local buffer.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@18847 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
CaS 2004-03-15 18:01:53 +00:00
parent 5978eda5cf
commit e8c28bc71a
4 changed files with 96 additions and 13 deletions

View file

@ -1697,7 +1697,17 @@ OAppend(id obj, NSDictionary *loc, unsigned lev, unsigned step,
NSString *plists[count];
unsigned i;
[obj getObjects: plists];
if ([obj isProxy] == YES)
{
for (i = 0; i < count; i++)
{
plists[i] = [obj objectAtIndex: i];
}
}
else
{
[obj getObjects: plists];
}
if (loc == nil)
{
@ -1751,6 +1761,7 @@ OAppend(id obj, NSDictionary *loc, unsigned lev, unsigned step,
BOOL canCompare = YES;
Class lastClass = 0;
unsigned level = lev;
BOOL isProxy = [obj isProxy];
if (level*step < sizeof(indentStrings)/sizeof(id))
{
@ -1772,7 +1783,17 @@ OAppend(id obj, NSDictionary *loc, unsigned lev, unsigned step,
= indentStrings[sizeof(indentStrings)/sizeof(id)-1];
}
[keyArray getObjects: keys];
if (isProxy == YES)
{
for (i = 0; i < numKeys; i++)
{
keys[i] = [keyArray objectAtIndex: i];
}
}
else
{
[keyArray getObjects: keys];
}
for (i = 0; i < numKeys; i++)
{
@ -1868,9 +1889,19 @@ OAppend(id obj, NSDictionary *loc, unsigned lev, unsigned step,
#endif
}
for (i = 0; i < numKeys; i++)
if (isProxy == YES)
{
plists[i] = (*myObj)(obj, objSel, keys[i]);
for (i = 0; i < numKeys; i++)
{
plists[i] = [obj objectForKey: keys[i]];
}
}
else
{
for (i = 0; i < numKeys; i++)
{
plists[i] = (*myObj)(obj, objSel, keys[i]);
}
}
if (x == NSPropertyListXMLFormat_v1_0)