Commit graph

6026 commits

Author SHA1 Message Date
theraven
e1517e15e6 Fix a memory leak that valgrind spotted.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33479 72102866-910b-0410-8b05-ffd578937521
2011-07-07 12:30:10 +00:00
theraven
d5d099e7a6 Use -retainCount instead of NSExtraRefCount() in gs_weak_load() so we can support objects that define a custom retain / release mechanism in weak variables.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33478 72102866-910b-0410-8b05-ffd578937521
2011-07-07 12:29:54 +00:00
theraven
af93046588 Fix typo NS -> GS. We don't actually want NSAllocateObject to call NSAllocateObject...
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33458 72102866-910b-0410-8b05-ffd578937521
2011-07-04 21:23:26 +00:00
theraven
4d48d0bcaa Switch the order of the reference count and the zone so that the reference count (in reference counted mode) is always immediately in front of the object. Please test this!!
Opt NSObject into the fast path for ARC.  ARC will now not call the retain / release / autorelease methods on NSObject or any classes that inherit their implementation of these methods from NSObject.  In quick and dirty testing, this gives about a 10-20% speedup.  



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33446 72102866-910b-0410-8b05-ffd578937521
2011-07-04 11:31:28 +00:00
theraven
a064345ddd Don't call c++ constructors when allocating a class with class_createInstance() - this function calls them itself, and calling them twice is a bad idea.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33436 72102866-910b-0410-8b05-ffd578937521
2011-07-03 11:04:04 +00:00
theraven
72e4d13156 Rewrote NSProxy's -retain / -release to be the same as NSObject, not its own ad-hoc thing.
Added declaration of __bridge for use in non-ARC mode.

Tweaked arrayWithObjects:count: to take a const id* parameter, to avoid ARC
treating it as a write-back parameter.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33425 72102866-910b-0410-8b05-ffd578937521
2011-06-30 14:44:58 +00:00
theraven
57aca2c837 Add support to NSObject for automatically zeroing __weak references when using ARC.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33408 72102866-910b-0410-8b05-ffd578937521
2011-06-29 13:13:15 +00:00
theraven
554a136f3c Small tweaks to NSGarbageCollector.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33402 72102866-910b-0410-8b05-ffd578937521
2011-06-29 11:46:45 +00:00
rfm
fa4f612062 move comment to be before the method it applies to
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33380 72102866-910b-0410-8b05-ffd578937521
2011-06-26 10:27:52 +00:00
wlux
1d5f115076 Fix implementation of NSString -getParagraphStart🔚contentsEnd:forRange:.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33379 72102866-910b-0410-8b05-ffd578937521
2011-06-26 10:03:10 +00:00
fredkiefer
f6bec228b9 Add a few 10.6 NSURL methods to NSBundle.
Based on patch by julian.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33367 72102866-910b-0410-8b05-ffd578937521
2011-06-22 23:01:01 +00:00
rfm
50b71cb1bc locking fix
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33356 72102866-910b-0410-8b05-ffd578937521
2011-06-20 07:47:47 +00:00
rfm
33843644e1 Add some flexibility
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33355 72102866-910b-0410-8b05-ffd578937521
2011-06-20 07:33:27 +00:00
rfm
53b5f5405c fix a couple of leak detection bugs
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33353 72102866-910b-0410-8b05-ffd578937521
2011-06-20 04:37:20 +00:00
rfm
e78ceb4c96 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
rfm
8b2ffba3d9 Start stuff for handling cleanup on process exit.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33344 72102866-910b-0410-8b05-ffd578937521
2011-06-19 09:26:03 +00:00
rfm
3d1656a7bd fix uninitialised variable
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33342 72102866-910b-0410-8b05-ffd578937521
2011-06-18 18:11:57 +00:00
rfm
59540e5b9f fix possibly uninitialised variable
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33341 72102866-910b-0410-8b05-ffd578937521
2011-06-18 17:47:37 +00:00
rfm
05f8f8f257 Patches by Sebastian Reitenbach
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33338 72102866-910b-0410-8b05-ffd578937521
2011-06-18 12:57:30 +00:00
rfm
72c9155ff3 10.6 sompatibility (some)
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33337 72102866-910b-0410-8b05-ffd578937521
2011-06-18 07:09:28 +00:00
rfm
54a0546f98 Fix xml parse error
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33327 72102866-910b-0410-8b05-ffd578937521
2011-06-17 13:47:24 +00:00
rfm
074a57a018 Add some requests 10.6 methods ... untested.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33326 72102866-910b-0410-8b05-ffd578937521
2011-06-17 11:45:28 +00:00
fredkiefer
d00b0bd62c Make Avahi work with gcc 2.95.
Patch by Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33291 72102866-910b-0410-8b05-ffd578937521
2011-06-13 14:50:25 +00:00
fredkiefer
8fb735ef34 Add rest of Sebastian's patch.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33280 72102866-910b-0410-8b05-ffd578937521
2011-06-11 15:32:37 +00:00
fredkiefer
f527f7a973 * Source\NSCalendar.m: Protect the name id.
Patch by Sebastian Reitenbach <sebastia@l00-bugdead-prods.de>


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33276 72102866-910b-0410-8b05-ffd578937521
2011-06-11 10:44:38 +00:00
rfm
212534bfba Add configure option to control gdomap port
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33264 72102866-910b-0410-8b05-ffd578937521
2011-06-09 17:08:41 +00:00
rfm
2e8445ffdc remove observer on dealloc
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33257 72102866-910b-0410-8b05-ffd578937521
2011-06-07 18:34:39 +00:00
fredkiefer
93b2eadbf8 Add [NSURL -checkResourceIsReachableAndReturnError:].
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33245 72102866-910b-0410-8b05-ffd578937521
2011-06-04 15:08:37 +00:00
rfm
5bb50a3205 apply Wolfgangs fix
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33238 72102866-910b-0410-8b05-ffd578937521
2011-06-03 06:02:18 +00:00
rmottola
ad9905a172 Disable use of tzname on OpenBSD too
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33229 72102866-910b-0410-8b05-ffd578937521
2011-06-02 07:45:41 +00:00
rfm
e189595561 another system specific tweak
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33228 72102866-910b-0410-8b05-ffd578937521
2011-06-02 06:54:23 +00:00
rfm
1931f89535 fix typo
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33227 72102866-910b-0410-8b05-ffd578937521
2011-06-01 22:12:21 +00:00
rfm
f9e0929417 More attempts to work around system specific timezone inconsistencies
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33226 72102866-910b-0410-8b05-ffd578937521
2011-06-01 22:04:46 +00:00
rfm
ba720e4293 minor tweak to fallback
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33222 72102866-910b-0410-8b05-ffd578937521
2011-06-01 15:15:52 +00:00
rfm
09f50b3388 fix boundary
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33219 72102866-910b-0410-8b05-ffd578937521
2011-06-01 11:44:48 +00:00
thebeing
a21c1b4e17 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
rfm
d70e36cea8 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
rfm
a3d6ab0806 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
theraven
3da96c981c 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
theraven
f9cc9494d3 (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
fredkiefer
b79e6ba0be 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
theraven
0f262c600e 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
ericwa
3aa5c524e6 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
theraven
ac4b932048 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
theraven
84a09a6d75 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
theraven
ed2ccb68d9 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
fredkiefer
9e3b2540f6 * 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
theraven
d3da3cf24f 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
theraven
75fa6eb931 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
theraven
19e71aa612 __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