From 2ff6f4fbf1a8b4e7d08ca058e4b7a390acdf78da Mon Sep 17 00:00:00 2001 From: Richard Frith-Macdonald Date: Thu, 16 Sep 2004 14:33:54 +0000 Subject: [PATCH] MacOS0X compatibility tweak git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@20073 72102866-910b-0410-8b05-ffd578937521 --- ChangeLog | 5 +++++ Source/NSArray.m | 27 +++++++++++++++++---------- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index 695d00666..0b0172f4c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2004-09-16 Richard Frith-Macdonald + + * Source/NSArray.m: + Make objects perform selector in same order as MacOS-X + 2004-09-16 David Ayers * Headers/Additions/GNUstepBase/GSObjCRuntime.h: Define encoding diff --git a/Source/NSArray.m b/Source/NSArray.m index f9fcfb2f0..b4bfc5dee 100644 --- a/Source/NSArray.m +++ b/Source/NSArray.m @@ -863,18 +863,21 @@ static SEL rlSel; /** * Makes each object in the array perform aSelector.
- * This is done sequentially from the last to the first object. + * This is done sequentially from the first to the last object. */ - (void) makeObjectsPerformSelector: (SEL)aSelector { - unsigned i = [self count]; + unsigned c = [self count]; - if (i > 0) + if (c > 0) { IMP get = [self methodForSelector: oaiSel]; + unsigned i = 0; - while (i-- > 0) - [(*get)(self, oaiSel, i) performSelector: aSelector]; + while (i < c) + { + [(*get)(self, oaiSel, i++) performSelector: aSelector]; + } } } @@ -888,18 +891,22 @@ static SEL rlSel; /** * Makes each object in the array perform aSelector with arg.
- * This is done sequentially from the last to the first object. + * This is done sequentially from the first to the last object. */ - (void) makeObjectsPerformSelector: (SEL)aSelector withObject: (id)arg { - unsigned i = [self count]; + unsigned c = [self count]; - if (i > 0) + if (c > 0) { IMP get = [self methodForSelector: oaiSel]; + unsigned i = 0; - while (i-- > 0) - [(*get)(self, oaiSel, i) performSelector: aSelector withObject: arg]; + while (i < c) + { + [(*get)(self, oaiSel, i++) performSelector: aSelector + withObject: arg]; + } } }