Commit graph

219 commits

Author SHA1 Message Date
Richard Frith-Macdonald
72ad2656c8 don't create NSLock instances during initialisation 2018-04-12 18:21:19 +01:00
Richard Frith-Macdonald
9bbcd75d16 Fix for failure to check insertion point is at an existing item. 2017-11-16 14:56:20 +00:00
Richard Frith-MacDonald
8a9d9597b0 tweaks
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@39779 72102866-910b-0410-8b05-ffd578937521
2016-05-19 07:21:36 +00:00
Richard Frith-MacDonald
d40d219015 removal of garbage collection
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@39608 72102866-910b-0410-8b05-ffd578937521
2016-03-25 11:15:28 +00:00
Richard Frith-MacDonald
a0c97c1ddd deprecate confusing extension in favour of simpler ARC-complient method
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@39520 72102866-910b-0410-8b05-ffd578937521
2016-03-10 16:50:41 +00:00
Richard Frith-MacDonald
a51249a65d Apply patch by Patrick Laurent and tidy a bit.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@39411 72102866-910b-0410-8b05-ffd578937521
2016-02-24 07:41:20 +00:00
Riccardo Mottola
cb977b3915 Minor cast fixes
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@38855 72102866-910b-0410-8b05-ffd578937521
2015-08-05 08:34:49 +00:00
Richard Frith-MacDonald
5cbc47a238 minor performance tweaks
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@38805 72102866-910b-0410-8b05-ffd578937521
2015-07-16 09:30:57 +00:00
Richard Frith-MacDonald
3b02814665 more updates
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@38803 72102866-910b-0410-8b05-ffd578937521
2015-07-16 08:44:15 +00:00
Richard Frith-MacDonald
841ddf78e0 memory usage interrogation
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@38799 72102866-910b-0410-8b05-ffd578937521
2015-07-15 14:14:21 +00:00
Richard Frith-MacDonald
4bce4d2978 Various updates
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@38599 72102866-910b-0410-8b05-ffd578937521
2015-06-04 09:18:52 +00:00
Riccardo Mottola
9eac37b9c8 Add firstObject: method existing since 10.6
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@38595 72102866-910b-0410-8b05-ffd578937521
2015-06-01 17:43:37 +00:00
Richard Frith-MacDonald
60a0f7ce5b minor fixes for 64bit systems using collection with more than 2^32 items
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@38295 72102866-910b-0410-8b05-ffd578937521
2015-01-16 15:25:50 +00:00
Richard Frith-MacDonald
777f693855 safety tweak suggested by Quentin
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@37564 72102866-910b-0410-8b05-ffd578937521
2014-01-09 09:55:36 +00:00
Richard Frith-MacDonald
6475418c5e Don't set mutations pointer to on-stack value which could randomly get set
to contain garbage ... use self instead.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@37563 72102866-910b-0410-8b05-ffd578937521
2014-01-09 09:00:24 +00:00
Fred Kiefer
32a9c4c1dd * Headers/Foundation/NSArray.h,
* Source/NSArray.m: Move -setValue:forKey: from NSMutableArray
  to NSArray.
Patch by Marcian Lytwyn <marcian.lytwyn@advcsi.com>.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@37464 72102866-910b-0410-8b05-ffd578937521
2013-12-13 21:01:22 +00:00
Richard Frith-MacDonald
ed09c55959 leak detection improvements
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@37003 72102866-910b-0410-8b05-ffd578937521
2013-08-22 15:44:54 +00:00
Richard Frith-MacDonald
55149fdc40 Memory management nad documentation fixes.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@35584 72102866-910b-0410-8b05-ffd578937521
2012-09-21 10:27:05 +00:00
Richard Frith-MacDonald
cc42a0110d formatting/coding style fixups
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@35574 72102866-910b-0410-8b05-ffd578937521
2012-09-19 14:20:01 +00:00
Niels Grewe
f8fd11f3fd Completely overhaul how we do sorting in -base. GSSorting.h now defines an
interface that can be used for all sorting tasks in the library. The actual sort
algorithms to use are now plugable. Timsort is the new default sorting
algorithm, the existing algorithms, shellsort and quicksort, can still be
selected using a configure switch.

Also implement the new NSComparator (blocks) based sorting and insertion index
searching methods for NSMutableArray and NSArray.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@35573 72102866-910b-0410-8b05-ffd578937521
2012-09-19 13:31:09 +00:00
David Chisnall
3cb1b08b26 Support for collection subscripting (NSArray and NSDictionary).
Yes, the syntax is ugly, but no doubt people will start using it in June...



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@35033 72102866-910b-0410-8b05-ffd578937521
2012-04-06 12:23:10 +00:00
Niels Grewe
fa47f6da10 Detect the presence of libdispatch and, if available, use it for collection
enumeration methods that take blocks as arguments. This allows us to implement
the NSEnumerationConcurrent option of those methods with minimal effort.

The searching methods on NSIndexSet and all the sorting methods are still
missing.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@35010 72102866-910b-0410-8b05-ffd578937521
2012-03-27 17:05:19 +00:00
Fred Kiefer
e7d5480cd1 * Source/NSArray.m (-objectsAtIndexes:): Fix comparision of
unsigned variable with NSNotFound.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@34389 72102866-910b-0410-8b05-ffd578937521
2012-01-02 15:07:32 +00:00
David Chisnall
d2ea054c26 Lots of little fixes to make -base compile with -Werror (now builds without warnings).
Richard: I'm unsure about three of these, which were fixes in memset() calls in:
- NSConcreteMapTable.m
- NSConcreteHashTable.m
- Additions/NSData+GNUstepBase.m

Please can you check them?  I think they are intended to zero the entire object
(rather than the first word), but the lack of comments makes me unsure.

Most changes were just tweaks to variable types.  I've also removed some dead code from NSInvocation.  This was small group of things that were marked for internal use only, but not actually referenced in the code anywhere.

Other improvements:

- NSArray / NSDictionary fixed up to use the 10.7 (ARC-friendly) prototypes.
- getObjects:andKeys: implemented for NSDictionary (10.5 method)
- NSPointerArray and NSHashTable now properly support weak objects.
- Tests for weak objects in collections.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33621 72102866-910b-0410-8b05-ffd578937521
2011-07-24 13:09:22 +00:00
David Chisnall
d323a291d8 Change id* -> id[] for OS X 10.7 compatibility in NSArray. This change is required for ARC: now, id* means pointer to a single object, id[] means array.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33607 72102866-910b-0410-8b05-ffd578937521
2011-07-22 16:07:23 +00:00
Richard Frith-MacDonald
523366101e more leak cleanup stuff
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33349 72102866-910b-0410-8b05-ffd578937521
2011-06-19 13:34:17 +00:00
Richard Frith-MacDonald
59d4be1265 OSX compat tweaks
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32323 72102866-910b-0410-8b05-ffd578937521
2011-02-23 11:52:17 +00:00
David Chisnall
cd09e6bf87 Remove redundant copy + leak in NSArray.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32080 72102866-910b-0410-8b05-ffd578937521
2011-02-11 15:13:48 +00:00
Richard Frith-MacDonald
60885954c6 Recommit tested changes.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32075 72102866-910b-0410-8b05-ffd578937521
2011-02-11 14:31:25 +00:00
Richard Frith-MacDonald
336c7bf021 Revert back to working code!
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32072 72102866-910b-0410-8b05-ffd578937521
2011-02-11 13:53:54 +00:00
Richard Frith-MacDonald
f3f69cccc2 get things to compile again
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32071 72102866-910b-0410-8b05-ffd578937521
2011-02-11 13:05:48 +00:00
David Chisnall
acf11e142d Fix NSEnumerationReverse in the other place where this bug was pasted. I must have been asleep or drunk when I wrote this method.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32055 72102866-910b-0410-8b05-ffd578937521
2011-02-11 11:31:41 +00:00
David Chisnall
8c06de29c6 Fix [NSArray -indexesOfObjectsWithOptions:passingTest:] with NSEnumerationReverse option. Was doing forward iteration in all cases.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32054 72102866-910b-0410-8b05-ffd578937521
2011-02-11 11:29:34 +00:00
Richard Frith-MacDonald
9eb046056c tweaks for clang static analyser warningS
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32048 72102866-910b-0410-8b05-ffd578937521
2011-02-11 09:02:33 +00:00
Richard Frith-MacDonald
15f4308a20 various bugfixes
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30732 72102866-910b-0410-8b05-ffd578937521
2010-06-15 11:26:00 +00:00
Richard Frith-MacDonald
4da5c940ab revert reversion ... i was wrong about jigs
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30150 72102866-910b-0410-8b05-ffd578937521
2010-04-14 10:39:05 +00:00
Richard Frith-MacDonald
0017de868c revert change which broke jigs
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30147 72102866-910b-0410-8b05-ffd578937521
2010-04-14 09:18:12 +00:00
Richard Frith-MacDonald
cfa8831721 osx compatibility tweak.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@30140 72102866-910b-0410-8b05-ffd578937521
2010-04-13 18:37:09 +00:00
Richard Frith-MacDonald
c07dc48eb3 more header reorganisation
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29731 72102866-910b-0410-8b05-ffd578937521
2010-02-25 08:36:34 +00:00
Richard Frith-MacDonald
7cc69dfaae Simplify header inclusion
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29669 72102866-910b-0410-8b05-ffd578937521
2010-02-19 08:12:46 +00:00
Richard Frith-MacDonald
21d597e740 merge back reorganisation branch
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29615 72102866-910b-0410-8b05-ffd578937521
2010-02-14 10:48:10 +00:00
David Chisnall
34c77138fc Added implementations of some of the new (10.6) NSArray methods that take blocks as arguments. These all use the new GSBlocks.h macros, so compile cleanly with GCC, but can be used by code compiled by clang.
Some of these implementations are not as efficient as they could be (especially the ones that take an NSIndexSet as the first argument).  They also don't yet support concurrent enumeration.  Apple implements these using Grand Central.  We could possibly have a background thread that we send these things to (or use GCD if libdispatch is available).  It's not worth spawning a new thread for them, except in exceptional circumstances (and, unfortunately, we can't easily tell how expensive a single iteration of a block is.  Possibly we could time one block invocation, and if it's longer than some threshold make it concurrent, but it's probably not worth the effort).



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29176 72102866-910b-0410-8b05-ffd578937521
2009-12-27 16:49:52 +00:00
David Chisnall
05f18160df Added -enumerateObjectsUsingBlock: implementation to NSArray.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29174 72102866-910b-0410-8b05-ffd578937521
2009-12-27 15:25:12 +00:00
Richard Frith-MacDonald
9faaf05aff Remove obsolete ifdefs
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28262 72102866-910b-0410-8b05-ffd578937521
2009-04-28 20:00:59 +00:00
Richard Frith-MacDonald
807d1b8a65 gc improvements
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28234 72102866-910b-0410-8b05-ffd578937521
2009-04-19 10:03:18 +00:00
Richard Frith-MacDonald
f3788b611e OSX 10.5 API fixups for mingw
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28092 72102866-910b-0410-8b05-ffd578937521
2009-03-18 10:02:49 +00:00
Richard Frith-MacDonald
24d43481a8 Updates for 10.5 API changes
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@27962 72102866-910b-0410-8b05-ffd578937521
2009-02-23 20:42:32 +00:00
Richard Frith-MacDonald
910deff1a6 Add skeletal NSXML work as requested.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@27824 72102866-910b-0410-8b05-ffd578937521
2009-02-09 16:16:11 +00:00
Richard Frith-MacDonald
940de12cab More garbage collection updates/fixes.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@27590 72102866-910b-0410-8b05-ffd578937521
2009-01-13 15:57:38 +00:00
Richard Frith-MacDonald
952af9c197 garbage collection fixups
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@27578 72102866-910b-0410-8b05-ffd578937521
2009-01-12 12:48:46 +00:00