Niels Grewe
c480a0ce35
Adjust callback prototypes to use NSUInteger instead of unsigned int.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33214 72102866-910b-0410-8b05-ffd578937521
2011-05-31 14:19:26 +00:00
Richard Frith-MacDonald
a69b7c2466
always create autorelease pools for mixed GC mode support
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33212 72102866-910b-0410-8b05-ffd578937521
2011-05-31 07:55:06 +00:00
Richard Frith-MacDonald
ba24ce0841
minor map/hash table compatibility tweaks and simplify notification center
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33210 72102866-910b-0410-8b05-ffd578937521
2011-05-31 06:46:17 +00:00
David Chisnall
e6ec8a906f
Added ChangeLog entry from last commit
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33208 72102866-910b-0410-8b05-ffd578937521
2011-05-30 16:29:24 +00:00
David Chisnall
da614b1a25
Added ChangeLog entry from last commit
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33207 72102866-910b-0410-8b05-ffd578937521
2011-05-30 16:27:16 +00:00
David Chisnall
75402211f2
Add a couple of __strong annotations to pointers. Any non-id pointer that can
...
store GC'd memory must be __strong. Currently, this annotation is largely
ignored, because the runtime is a lot more lax about what may store pointers
than Apple's, but this will be tightened up in the future.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33205 72102866-910b-0410-8b05-ffd578937521
2011-05-30 11:40:26 +00:00
Richard Frith-MacDonald
52ee556d01
Fix broken atomic ops config again
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33187 72102866-910b-0410-8b05-ffd578937521
2011-05-29 07:38:48 +00:00
David Chisnall
7f4aaf781b
(Hopefully) fix the build with GS_WITH_GC.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33185 72102866-910b-0410-8b05-ffd578937521
2011-05-28 22:35:57 +00:00
Fred Kiefer
a3cdc403cb
Remove compiler warnings.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33184 72102866-910b-0410-8b05-ffd578937521
2011-05-28 20:27:20 +00:00
David Chisnall
1b91607fc1
Added changelog from last commit.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33183 72102866-910b-0410-8b05-ffd578937521
2011-05-28 18:10:12 +00:00
Eric Wasylishen
af69d9db67
regenerate configure
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33182 72102866-910b-0410-8b05-ffd578937521
2011-05-28 18:10:07 +00:00
Eric Wasylishen
5679c47f83
changelog for last commit
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33181 72102866-910b-0410-8b05-ffd578937521
2011-05-28 18:05:31 +00:00
David Chisnall
f8ea008b1b
Make NSPointerArray insert the correct read / write barriers in GC mode.
...
Add some helper functions to NSConcretePointerFunctions.h that make it easier
to do this in the other collections that need to support GC.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33180 72102866-910b-0410-8b05-ffd578937521
2011-05-28 18:05:29 +00:00
Eric Wasylishen
f2a470d893
tweak and re-enable atomic ops detection
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33179 72102866-910b-0410-8b05-ffd578937521
2011-05-28 18:05:14 +00:00
David Chisnall
6a4d9fd5ae
Fix a few functions that I missed for hybrid mode.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33178 72102866-910b-0410-8b05-ffd578937521
2011-05-28 15:28:24 +00:00
David Chisnall
93218b86ba
Make CFRetain() / CFRelease() behaviour dependent on GC mode.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33177 72102866-910b-0410-8b05-ffd578937521
2011-05-28 15:15:05 +00:00
David Chisnall
ae40941018
Added ChangeLog entry from last commit
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33175 72102866-910b-0410-8b05-ffd578937521
2011-05-28 14:52:20 +00:00
David Chisnall
4db587f9d6
First pass at hybrid GC mode. This will try use retain-release mode if the collector is not running. Code will run in retain/release mode unless something compiled with -fobjc-gc-only is loaded.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33174 72102866-910b-0410-8b05-ffd578937521
2011-05-28 14:51:40 +00:00
Fred Kiefer
86fa2414ec
* Source/NSString.m (-initWithFormat:locale:): Make sure va_end()
...
gets called.
Patch by Stefan Bidigaray <stefanbidi@gmail.com>.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33172 72102866-910b-0410-8b05-ffd578937521
2011-05-28 13:32:29 +00:00
David Chisnall
f7368f492b
Make NSGarbageCollector return nil when compiled in GC mode but run in non-GC mode.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33170 72102866-910b-0410-8b05-ffd578937521
2011-05-28 13:13:42 +00:00
David Chisnall
0a6a7216ac
Accidentally left some non-GC code enabled in GC mode.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33169 72102866-910b-0410-8b05-ffd578937521
2011-05-28 13:09:57 +00:00
David Chisnall
f7cc7203d9
Make the mkchlog.sh script update the changelog, so you don't get conflicts when you try to commit.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33167 72102866-910b-0410-8b05-ffd578937521
2011-05-28 12:51:57 +00:00
David Chisnall
55a3a9e805
Added ChangeLog entry from last commit
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33166 72102866-910b-0410-8b05-ffd578937521
2011-05-28 12:51:06 +00:00
David Chisnall
50e06b7cca
__weak is only allowed on ivars and globals, so we need to turn the Observation structure into a class.
...
Richard:
I've run the test suite with GC disabled on Linux/x86-64 and nothing broke, but can you please review these changes carefully anyway?
We seem to be using a complex custom allocator for a structure that is not allocated or deallocated. In typical programs, it looks like we're actually just wasting memory by using the memory pool here. Looking at the commit log, this hasn't really been touched for about 10 years, so possibly the assumptions are no longer valid. I can only see this being useful if someone is adding and removing hundreds of notification observers every run loop iteration. Do you have code that does this? If not, then can I remove the custom allocator?
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33165 72102866-910b-0410-8b05-ffd578937521
2011-05-28 12:49:52 +00:00
Niels Grewe
2c301fb937
Disable atomic ops detection for the time being.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33163 72102866-910b-0410-8b05-ffd578937521
2011-05-28 10:00:22 +00:00
David Chisnall
668081efb2
Use correct test macro for __weak.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33162 72102866-910b-0410-8b05-ffd578937521
2011-05-27 23:36:28 +00:00
David Chisnall
68f1581eb9
This one isn't really important, since this code path is only ever used in non-GC mode, but it keeps the static analyser happy.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33145 72102866-910b-0410-8b05-ffd578937521
2011-05-27 12:00:57 +00:00
David Chisnall
6787444673
Added ChangeLog entry from last commit
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33144 72102866-910b-0410-8b05-ffd578937521
2011-05-27 11:50:26 +00:00
David Chisnall
7764740bdc
Make -drain and -release in NSAutoreleasePool do the same thing (rather than one calling the other) in non-GC mode.
...
Replace all -release messages sent to autorelease pools with -drain. In non-GC mode, these are equivalent. In GC mode, these trigger a collection.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33143 72102866-910b-0410-8b05-ffd578937521
2011-05-27 11:48:44 +00:00
Richard Frith-MacDonald
29063b6928
minor tweaks for atomic inc/dec support
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33142 72102866-910b-0410-8b05-ffd578937521
2011-05-27 10:05:25 +00:00
David Chisnall
417418ef8e
Revert accidentally committed changes.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33140 72102866-910b-0410-8b05-ffd578937521
2011-05-27 09:18:57 +00:00
Niels Grewe
410ab087fa
Attempt to detect the flags needed to enable compiler intrinsics for atomic
...
operations.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33134 72102866-910b-0410-8b05-ffd578937521
2011-05-26 18:37:58 +00:00
David Chisnall
61c20dcf92
Added ChangeLog entry from last commit
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33132 72102866-910b-0410-8b05-ffd578937521
2011-05-26 18:30:19 +00:00
David Chisnall
928551c80a
Use RTLD_NOLOAD, if it's supported.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33131 72102866-910b-0410-8b05-ffd578937521
2011-05-26 18:29:43 +00:00
David Chisnall
f6496702aa
Added ChanngeLog for last commit
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33124 72102866-910b-0410-8b05-ffd578937521
2011-05-26 13:25:48 +00:00
David Chisnall
de2fd8df6e
More GC fixes. Most notably, mark the thread object as not collectable, since it's hidden away in TLS where the GC can't find it.
...
GC now works well enough for LanguageKit to run.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33123 72102866-910b-0410-8b05-ffd578937521
2011-05-26 13:24:13 +00:00
Richard Frith-MacDonald
8da9a5ecbb
Another attempt to improve atomic inc/dec
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33119 72102866-910b-0410-8b05-ffd578937521
2011-05-25 22:18:39 +00:00
Richard Frith-MacDonald
ac2b43669d
Tweak atomic inc/dec code
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33116 72102866-910b-0410-8b05-ffd578937521
2011-05-25 16:47:11 +00:00
Richard Frith-MacDonald
eb39994378
partial revert
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33115 72102866-910b-0410-8b05-ffd578937521
2011-05-25 15:53:17 +00:00
David Chisnall
8a5f6fd2d5
Added ChangeLog entry from last commit
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33110 72102866-910b-0410-8b05-ffd578937521
2011-05-25 11:16:14 +00:00
David Chisnall
b08b2d0f34
More tweaks for garbage collection mode, including making NSNotificationCenter use weak pointers (things are never removed if it uses strong pointers because they remove themselves in the -dealloc method, which is never called, and can't remove themselves in the -finalize method because the -finalize method would not be called until after they have been removed - this is consistent with Apple behaviour).
...
Gorm now works correctly when built with GC enabled.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33109 72102866-910b-0410-8b05-ffd578937521
2011-05-25 11:15:08 +00:00
Richard Frith-MacDonald
a439972605
attempt multithreading bugfix
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33107 72102866-910b-0410-8b05-ffd578937521
2011-05-25 09:20:42 +00:00
David Chisnall
6068e9484c
Initial pass at implementing fully Apple-compatible GC. This requires the code to be built with -fobjc-gc or -fobjc-gc-only, and requires a runtime that implements all of the support functions (GNUstep runtime trunk or 1.5 when it's release).
...
Currently, there are a few places where we should be calling NSAllocateCollectable() without NSScannedOption, but are actually calling NSZoneMalloc() unless we're in GC mode. We should not need separate code paths for this anywhere outside NSZone, since NSAllocateCollectable() will work in non-GC mode as well.
A few of the changes should be tweaked slightly so that they do run-time tests. For example, when compiling with -fobjc-gc, we may be linked against non-GC code, which will use -retain and -release but won't use the memory barriers. Supporting this nicely is a lot of effort, and I'm not fully convinced it's a good idea.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33104 72102866-910b-0410-8b05-ffd578937521
2011-05-24 14:43:27 +00:00
Richard Frith-MacDonald
e32626abe7
try to cope better with apps which leak autorelease pools.
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33099 72102866-910b-0410-8b05-ffd578937521
2011-05-24 10:52:25 +00:00
Richard Frith-MacDonald
afc2ef7de8
fix main bundle path
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33088 72102866-910b-0410-8b05-ffd578937521
2011-05-23 10:51:58 +00:00
Richard Frith-MacDonald
55cd4ef60b
quoted-printable fixes
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33082 72102866-910b-0410-8b05-ffd578937521
2011-05-22 06:22:05 +00:00
Richard Frith-MacDonald
8c89a47a8b
fix includes for gcc-4.6
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33069 72102866-910b-0410-8b05-ffd578937521
2011-05-19 08:19:24 +00:00
Richard Frith-MacDonald
df01b61d90
Minor thread-safety fix
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33029 72102866-910b-0410-8b05-ffd578937521
2011-05-12 18:14:40 +00:00
Richard Frith-MacDonald
ae8059e5c1
use errno.h for thread safety
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33028 72102866-910b-0410-8b05-ffd578937521
2011-05-12 16:08:10 +00:00
Richard Frith-MacDonald
b2649e0526
old/new objc api updates
...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33027 72102866-910b-0410-8b05-ffd578937521
2011-05-12 16:03:08 +00:00