Commit graph

255 commits

Author SHA1 Message Date
gcasa
e66625cfdf Conditionally compile weak attribute.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29159 72102866-910b-0410-8b05-ffd578937521
2009-12-22 22:12:56 +00:00
theraven
fffe50ffdc Added call to objc_create_block_classes_as_subclasses_of() in NSObject's +load method. This is called as soon as NSObject is loaded and creates the _NSBlock family of classes, which are statically allocated in the runtime but not statically initialised. If you create blocks without linking GNUstep-base, the isa pointer in the block will point to a class that has all of its fields set to 0.
Any blocks will have their isa pointer set to the two classes statically allocated in libobjc, but these classes can't be used for message lookup (or introspection) until after the call.  This means that you can't send messages to blocks until after NSObject's +load method has been called.  This shouldn't be a problem in most code, but if you use __attribute__((constructor)) instead of a +load method then be careful about sending messages to blocks (you can still call them as normal). 



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29144 72102866-910b-0410-8b05-ffd578937521
2009-12-20 16:59:41 +00:00
rfm
43cda8ed2c tidy
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29049 72102866-910b-0410-8b05-ffd578937521
2009-11-23 18:07:25 +00:00
theraven
5e3de82c70 Added fall-back line for forwarding. Now -forwardingProxyForSelector: should work on all runtimes, with all ABIs, it will just be painfully slow on the GCC runtime and the legacy ABI.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29048 72102866-910b-0410-8b05-ffd578937521
2009-11-23 16:43:08 +00:00
rfm
d9749d603d Documentation generation improvments
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29047 72102866-910b-0410-8b05-ffd578937521
2009-11-23 09:42:18 +00:00
wlux
56ba86ce4c Prevent potential deadlock in multithreaded programs due to an
allocation lock that was never unlocked.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28859 72102866-910b-0410-8b05-ffd578937521
2009-10-20 05:25:04 +00:00
rfm
1a11998ecf Cleanups and minor bugfixes for new code.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28665 72102866-910b-0410-8b05-ffd578937521
2009-09-12 07:37:00 +00:00
theraven
023f3b5e17 Added implementations of the hooks provided by the new runtime. This brings
NSObject up to feature-parity with the OS X 10.5 implementation when using the
new runtime and up to feature-parity with the 10.6 implementation if you are
using the new runtime and compiling with clang.

Also removes the objc_mutex_wibble stuff from NSObject in favour of just using
NSLocks (which, with the new implementation, are now faster than using
objc_mutex_stuff).



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28657 72102866-910b-0410-8b05-ffd578937521
2009-09-10 20:14:42 +00:00
theraven
0e2e4aa752 * Source/NSObject:
- Tweaked NSObject to use atomic ops with LLVM as well as gcc (this
		  probably isn't actually needed)
		- Fixed SIGFPE problem on FreeBSD using proper interfaces instead of 
		an asm hack.
	* Removes various mframe things from being compiled when ffcall/libffi is
	used (mframe.m, NSConnection.m, NSInvocation.m)
	* Turned a nested function in make_strings.m into a macro.  

Tested by Gregory - blame him for any breakage...



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28462 72102866-910b-0410-8b05-ffd578937521
2009-08-15 21:44:21 +00:00
rfm
6e50741e9a Fix failed commit
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28434 72102866-910b-0410-8b05-ffd578937521
2009-08-04 06:13:37 +00:00
rmottola
de58729919 Atomic increment and decrement functions for m68k
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28310 72102866-910b-0410-8b05-ffd578937521
2009-05-29 23:10:15 +00:00
fredkiefer
912f62759a * Source/NSObject.m: Correct asm for PPC.
Patch by Eric Wasylishen <ewasylishen@gmail.com>
* Source/NSObject.m: Add support for new gcc atomic build
ins. Currently still disabled.
Patch by David Chisnall <theraven@sucs.org>

M    Source/NSObject.m
M    ChangeLog


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28268 72102866-910b-0410-8b05-ffd578937521
2009-05-04 20:07:56 +00:00
rfm
09cccdbd3e Fix swizzle
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28222 72102866-910b-0410-8b05-ffd578937521
2009-04-15 08:31:14 +00:00
rfm
cfb566ed22 more GC improvements
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28220 72102866-910b-0410-8b05-ffd578937521
2009-04-15 08:03:19 +00:00
rfm
669d22f6d9 gc improvements
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28192 72102866-910b-0410-8b05-ffd578937521
2009-04-10 08:25:03 +00:00
fedor
565c79f59d Revert previous patch (David to fix up later).
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28174 72102866-910b-0410-8b05-ffd578937521
2009-04-03 14:56:41 +00:00
rfm
eba9ab6e75 Cleanups suggested/provided by David Chisnall
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28160 72102866-910b-0410-8b05-ffd578937521
2009-03-31 15:49:42 +00:00
rfm
4e2efb55dc use weak pointers for siblings
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28128 72102866-910b-0410-8b05-ffd578937521
2009-03-24 10:53:38 +00:00
rfm
1549f5b5e7 Implement OSX10.5 NSMapTable API
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28086 72102866-910b-0410-8b05-ffd578937521
2009-03-16 10:54:59 +00:00
rfm
c14d95bfe0 GC tweaks
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28063 72102866-910b-0410-8b05-ffd578937521
2009-03-10 17:12:47 +00:00
rfm
38980826a4 gc tweak
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28050 72102866-910b-0410-8b05-ffd578937521
2009-03-08 14:29:06 +00:00
rfm
c2bfae873f Remved some unused code.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28047 72102866-910b-0410-8b05-ffd578937521
2009-03-06 11:01:42 +00:00
rfm
30cf8bf35b 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
rfm
d7c2ea71f7 MacOS-X compatibility fix for GC
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@27845 72102866-910b-0410-8b05-ffd578937521
2009-02-11 10:11:33 +00:00
rfm
962f660ada fix for bug #25543
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@27830 72102866-910b-0410-8b05-ffd578937521
2009-02-10 12:49:06 +00:00
rfm
c41bdeb638 GC changes for MacOS-X compatiblity
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@27630 72102866-910b-0410-8b05-ffd578937521
2009-01-19 11:00:33 +00:00
rfm
f8441e1092 Change finalization to match MacOS-X
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@27581 72102866-910b-0410-8b05-ffd578937521
2009-01-12 18:36:37 +00:00
rfm
d304d9ee34 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
rfm
69effed5ac Add check of method types in -methodSignatureForSelector:
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@27135 72102866-910b-0410-8b05-ffd578937521
2008-11-26 09:20:34 +00:00
rfm
8658db87db Applied patch #6677
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@27080 72102866-910b-0410-8b05-ffd578937521
2008-11-17 13:45:32 +00:00
rfm
e0711a3b8d allow developers more time to adapt to LGPLv3
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@26606 72102866-910b-0410-8b05-ffd578937521
2008-06-08 10:38:33 +00:00
rfm
6dac2bfc68 Update atomic increment/decrement
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@26369 72102866-910b-0410-8b05-ffd578937521
2008-03-20 14:47:08 +00:00
rfm
cd46236028 Update to GPL3 and LGPL3
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@25482 72102866-910b-0410-8b05-ffd578937521
2007-09-14 11:36:11 +00:00
rfm
18b6d596bc Fix typo and add cast to avoid compiler warnings
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@24770 72102866-910b-0410-8b05-ffd578937521
2007-03-05 17:04:14 +00:00
rfm
18ce09000d fix error in declaration on mingw
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@24768 72102866-910b-0410-8b05-ffd578937521
2007-03-05 16:13:06 +00:00
rfm
1b933b6333 work around bug in mingw headers
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@24767 72102866-910b-0410-8b05-ffd578937521
2007-03-05 16:09:46 +00:00
rfm
ebe0afc55d avoid some compiler warnings
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@24765 72102866-910b-0410-8b05-ffd578937521
2007-03-05 16:02:25 +00:00
rfm
84f26e6805 Try using atomic increment/decrement for after retain/release.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@24764 72102866-910b-0410-8b05-ffd578937521
2007-03-05 15:41:09 +00:00
rfm
2b67e7ace4 ock contention fix added.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@24715 72102866-910b-0410-8b05-ffd578937521
2007-02-28 06:24:13 +00:00
fedor
10bb9dcc50 Apply BSD FPU fix on only x86
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@24404 72102866-910b-0410-8b05-ffd578937521
2007-01-23 16:04:29 +00:00
ratmice
fa13ef9c99 * Source/NSObject.m: Fix typo.
* Headers/Foundation/NSException.h: Export
        NSObjectInaccessibleException.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@24165 72102866-910b-0410-8b05-ffd578937521
2006-11-28 01:20:46 +00:00
rfm
f33c48a9ed Fix documentation version numbering
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@24034 72102866-910b-0410-8b05-ffd578937521
2006-11-06 13:05:52 +00:00
rfm
9e7b96ab0e More code tidyups and NSError updates.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@23921 72102866-910b-0410-8b05-ffd578937521
2006-10-20 10:56:27 +00:00
rfm
799955caff Experiment with function visibility ... try caching locale dictionary to be
accessed from a function yet invisible outside the base library even when
caching is done in the Additions subproject.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@23903 72102866-910b-0410-8b05-ffd578937521
2006-10-18 15:36:52 +00:00
rfm
31342aef09 Updates to reduce global namespace pollution. Plenty more remaining.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@23795 72102866-910b-0410-8b05-ffd578937521
2006-10-09 14:00:01 +00:00
rfm
a94904a806 Thread safety fixup
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@23408 72102866-910b-0410-8b05-ffd578937521
2006-09-07 11:47:45 +00:00
rfm
325987015c Implement CRASH_ON_ZOMBIE for memory debugging
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@23267 72102866-910b-0410-8b05-ffd578937521
2006-08-13 07:09:31 +00:00
rfm
85b1050160 Avoid some gcc-4.1 compiler warnings.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@22932 72102866-910b-0410-8b05-ffd578937521
2006-05-15 12:07:35 +00:00
CaS
f57ca76cba Fixes for 64bit systems .. mostly cosmetic avoidance of compiler warnings.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@22282 72102866-910b-0410-8b05-ffd578937521
2006-01-10 10:29:11 +00:00
CaS
1bf4c4c303 Documentation tweaks
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@22112 72102866-910b-0410-8b05-ffd578937521
2005-11-28 15:41:35 +00:00