Commit graph

7885 commits

Author SHA1 Message Date
rmottola
9979e794a8 fixed c99-ism
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29486 72102866-910b-0410-8b05-ffd578937521
2010-02-05 21:00:10 +00:00
rmottola
9814296d1c provide gcc 2.95 variadic macro
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29485 72102866-910b-0410-8b05-ffd578937521
2010-02-05 20:57:36 +00:00
jonathanosx
91aa9f9111 ChangeLog for NSLock modifications.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29484 72102866-910b-0410-8b05-ffd578937521
2010-02-05 18:21:40 +00:00
rfm
ad5c68529b tweak for OSX compatibility
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29480 72102866-910b-0410-8b05-ffd578937521
2010-02-05 11:41:24 +00:00
rfm
845bfe3c4c don't try to cleanup on main thread exit
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29478 72102866-910b-0410-8b05-ffd578937521
2010-02-04 18:04:13 +00:00
rfm
64cbdbcbe9 implement and document NSOperation
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29476 72102866-910b-0410-8b05-ffd578937521
2010-02-04 16:47:45 +00:00
rfm
a2f2b240b1 Corrected last commit
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29475 72102866-910b-0410-8b05-ffd578937521
2010-02-04 08:15:09 +00:00
rfm
602c0cc377 Apply fix suggested by David
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29474 72102866-910b-0410-8b05-ffd578937521
2010-02-04 08:07:55 +00:00
rfm
fe8f7460bf Fixup bad indentation
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29473 72102866-910b-0410-8b05-ffd578937521
2010-02-03 22:13:48 +00:00
jonathanosx
d42504f10a Fix several problems with lockWhenCondition:beforeDate:
First -- it needs to use timeIntervalSince1970 to be using the same reference date required for pthread_cond_timedwait
Second -- lockWhenCondition needs to loop because pthread_cond_timedwait can return prior to delay expiring (but with the wrong condition).
Third -- Internally the lock was incorrectly being unlocked on a delayed acquire (and YES return).  And was incorrectly being unlocked a second time when the timeout expired.

Also, fixed a problem with tryLockWhenCondition:
By calling lockWhenCondition: it would incorrectly report a deadlock (rather than just return no) when we already have the lock.

All these changes are in line with expected and documented behavior for NSLock.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29472 72102866-910b-0410-8b05-ffd578937521
2010-02-03 21:15:03 +00:00
rfm
b20bb71ccc use usleep for small intervals
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29469 72102866-910b-0410-8b05-ffd578937521
2010-02-03 09:45:45 +00:00
rfm
612ed04160 windows tweaks
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29468 72102866-910b-0410-8b05-ffd578937521
2010-02-03 09:31:59 +00:00
rfm
59114c78f1 exit when main thread exits
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29462 72102866-910b-0410-8b05-ffd578937521
2010-02-02 14:25:58 +00:00
rfm
56f4c389a0 thread termination fixups
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29461 72102866-910b-0410-8b05-ffd578937521
2010-02-01 21:08:45 +00:00
fredkiefer
8ec647b44d Get root index from the binary property list data and use this to return the root object.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29449 72102866-910b-0410-8b05-ffd578937521
2010-01-30 12:47:50 +00:00
theraven
4e837995f6 Made NSString +constantStringClass return the constant string class, rather than whatever configure guessed the constant string class was.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29405 72102866-910b-0410-8b05-ffd578937521
2010-01-25 16:01:10 +00:00
rfm
e0d9b95bba windows tweak
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29397 72102866-910b-0410-8b05-ffd578937521
2010-01-25 09:58:52 +00:00
rfm
b3a79482e5 Quick hack to try to fix initialisation
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29393 72102866-910b-0410-8b05-ffd578937521
2010-01-24 17:54:31 +00:00
rfm
1890339060 Reinstate working symbolic stack trace code.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29392 72102866-910b-0410-8b05-ffd578937521
2010-01-24 17:13:03 +00:00
theraven
11b2394a08 Fixed realloc() call.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29391 72102866-910b-0410-8b05-ffd578937521
2010-01-24 16:27:16 +00:00
rfm
6b1daf89b5 the -init method should return nil
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29381 72102866-910b-0410-8b05-ffd578937521
2010-01-24 06:53:49 +00:00
rfm
3ae126279b Apply patch to switch completely to using pthreads
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29367 72102866-910b-0410-8b05-ffd578937521
2010-01-23 17:00:13 +00:00
ericwa
1c3636512f define CGFLOAT_DEFINED when defining CGFloat.
Also check that NSINTEGER_DEFINED and CGFLOAT_DEFINED are undefined
before defining NSInterger and CGFloat.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29351 72102866-910b-0410-8b05-ffd578937521
2010-01-21 22:41:52 +00:00
gcasa
6d6c76aa55 * install.sh: Add --with-installation-domain=SYSTEM to the script
to allow automated build on Windows.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29350 72102866-910b-0410-8b05-ffd578937521
2010-01-21 21:17:52 +00:00
rfm
74c0d2f0c6 Re-instate lost check for setsid
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29341 72102866-910b-0410-8b05-ffd578937521
2010-01-21 08:23:19 +00:00
rfm
f0aa4a6bf3 reorganise a little avoiding redundant system calls (setpgrp and ioctl TIOCNOTTY
are not needed if setsid is used).


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29334 72102866-910b-0410-8b05-ffd578937521
2010-01-20 17:17:12 +00:00
rfm
68e92f70ad remove some duplicate code
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29329 72102866-910b-0410-8b05-ffd578937521
2010-01-20 12:03:37 +00:00
rfm
244258dabd make sure we remove task from controlling terminal.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29327 72102866-910b-0410-8b05-ffd578937521
2010-01-20 10:27:08 +00:00
qmathe
4c33ef3076 Mac OS X compatibility tweaks for NSFormatter coding and copying.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29268 72102866-910b-0410-8b05-ffd578937521
2010-01-11 22:08:21 +00:00
rfm
acab61a463 Add assertions to trap runtime error
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29263 72102866-910b-0410-8b05-ffd578937521
2010-01-11 13:54:32 +00:00
rfm
eacf55249b Tidied for consistency
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29262 72102866-910b-0410-8b05-ffd578937521
2010-01-11 12:49:18 +00:00
rfm
cb1ee03381 fixups in changes made to avoid compiler warnings.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29261 72102866-910b-0410-8b05-ffd578937521
2010-01-11 12:38:37 +00:00
rfm
55a9ce06d7 Fix error in class for zombie
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29259 72102866-910b-0410-8b05-ffd578937521
2010-01-11 11:29:44 +00:00
rfm
863022859d avoid compiler warnings
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29258 72102866-910b-0410-8b05-ffd578937521
2010-01-11 11:23:03 +00:00
fredkiefer
2d20ebc621 Set the concrete class, when this isn't already set. This was causing
compilation problems on gui with gcc 4.4


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29257 72102866-910b-0410-8b05-ffd578937521
2010-01-11 11:12:02 +00:00
rfm
ad6ba7c687 fix typo
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29255 72102866-910b-0410-8b05-ffd578937521
2010-01-10 15:43:05 +00:00
rfm
072c124d08 Tweaks for building with clang
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29254 72102866-910b-0410-8b05-ffd578937521
2010-01-10 14:38:16 +00:00
rfm
cc9250b32e tweak to avoid clang compilation failure
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29251 72102866-910b-0410-8b05-ffd578937521
2010-01-09 19:26:59 +00:00
rfm
91e22a6407 OSX compatibility update for newline character set.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29249 72102866-910b-0410-8b05-ffd578937521
2010-01-09 07:45:18 +00:00
rfm
25ad93b2f7 Fix for exception handling with libobjc2
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29247 72102866-910b-0410-8b05-ffd578937521
2010-01-09 07:24:05 +00:00
ericwa
2c28fd3e4c Implement +[NSCharacterSet newlineCharacterSet]
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29219 72102866-910b-0410-8b05-ffd578937521
2010-01-05 22:28:12 +00:00
theraven
0bd156fa4a Refactored last two commits so that all of the real code is in GSIMap.h and is just called from the relevant classes, rather than copied and pasted everywhere. Also added fast enumeration support to GSCountedSet.
I think that's all of the classes that use GSIMaps for their implementation now fully supporting fast enumeration.  If there are any that I've missed, then just copy the methods from GSSet to implement them.  You just need to set the mutations pointer to something sensible (i.e. something that will change if the collection mutates) and then call the new GSIMapCountByEnumeratingWithStateObjectsCount() function.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29181 72102866-910b-0410-8b05-ffd578937521
2009-12-29 16:49:07 +00:00
theraven
55e8317350 Added fast enumeration support to GS[Mutable]Dictionary. This follows exactly the same pattern (and uses the same code as) GSSet. It's probably worth factoring out this code, because it is now used in four methods with almost no variation between them.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29180 72102866-910b-0410-8b05-ffd578937521
2009-12-29 16:21:01 +00:00
theraven
cee58ca099 Added fast enumeration to NSSet. This changed the layout of GSMutableSet, adding a _version ivar, but this is a private class so it doesn't change the public ABI. All mutator methods in GSMutableSet must increment this variable, allowing thread-safe fast enumeration.
As with GSArray, GSSet uses its isa pointer for detecting mutations.  This may change as a result of adding KVO notifications, so it might not be the best solution, but I can't currently think of a way we could catch isa changing to [GSMutableSet class] and not changing to a hidden class...



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29179 72102866-910b-0410-8b05-ffd578937521
2009-12-29 15:59:14 +00:00
theraven
c5cf5e4535 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
theraven
23b31db6b3 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
theraven
a197590f24 Made NSArray conform to NSFastEnumeration. No idea why it wasn't already - it implements the methods...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29173 72102866-910b-0410-8b05-ffd578937521
2009-12-27 14:41:42 +00:00
theraven
301520a1d7 Tidied up some compiler warnings in last commit.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29172 72102866-910b-0410-8b05-ffd578937521
2009-12-27 14:41:15 +00:00
theraven
c62a66443c Fixed missing } in last commit.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29171 72102866-910b-0410-8b05-ffd578937521
2009-12-27 14:37:41 +00:00
theraven
9d55a856cf Added private GSFastEnumeration header. This defines two macros that allow fast enumeration to be used inside GNUstep. Use, for example:
NSArray *a=  [NSArray arrayWithObjects: @"a", @"b", @"c", nil];
FOR_IN(NSString*, o, a)
	NSLog(@"%@", o);
END_FOR_IN(a)

This is equivalent to:

for (NSString *o in a)
{
	NSLog(@"%@", o);
}

On clang, it will be expanded to exactly that.  With GCC, it will be expanded to something equivalent to the code that Clang (or Apple GCC) would expand this to.

This is a private GNUstep header and is not intended for general use.  Outside of GNUstep, please use fast enumeration directly.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29170 72102866-910b-0410-8b05-ffd578937521
2009-12-27 14:34:10 +00:00