Commit graph

51 commits

Author SHA1 Message Date
qmathe
c9e3c58f06 Fixed missing oneway qualifier on -release return type.
Recent Clang trunk versions complain about it.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@33634 72102866-910b-0410-8b05-ffd578937521
2011-07-26 10:47:16 +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
215c7fff9d __objc_responds_to() -> class_respondsToSelector().
No functionality change, just a switch to using the portable public functions.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32863 72102866-910b-0410-8b05-ffd578937521
2011-04-14 18:04:50 +00:00
rfm
313cf13c67 Cleanup ... avoid accessing the 'isa' variable directly.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32247 72102866-910b-0410-8b05-ffd578937521
2011-02-20 16:21:43 +00:00
rfm
d32eb0e985 Update for new runtime api
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32241 72102866-910b-0410-8b05-ffd578937521
2011-02-20 08:32:54 +00:00
theraven
85549433db A huge blob of changes to make -base build with libobjc2, without using the old libobjc2 headers.
Most of these changes involve simply removing direct manipulation of any runtime structures and replacing them with runtime function calls.  For example class->name becomes class_getName(class) and so on.

libobjc2, like the Apple runtime, the NeXT runtime, and every version of the Objective-C spec, calls the class pointer in id isa.  A few files now have #define class_pointer isa at the top.  This line replaces class_pointer in the old GNU libobjc headers with isa so either class_pointer or isa can be used for accessing the class of an object.  Note: object_getClass() should be used in most cases because, in some future version of the runtime, this will skip things like lock classes and other hidden classes (e.g. KVO classes).

All of the old forwarding stuff has been removed.  Most of this stuff followed convoluted code paths that ended with an exception.  A few simply broke in exciting ways.  Hopefully no one has used them for the last ten years or so, but we can bring them back with some #ifndef stuff if they're really needed by anyone.

There is currently a bug in configure, which prevents dladdr() from being detected, so you need to manually tweak config.h to build - I have not fixed the fall-back code in objc-load.m to work with libobjc2, I just added a new version that uses the loader's functionality directly.  

Although -base now builds, it builds with a lot of warnings.  <string.h> is missing from a lot of files, so memcpy() and strlen() generate implicit function declaration warnings.  

Additionally, libobjc2 does still provide the sel_{get,register}_*() functions, but they're wrappers around the newer API ones.  These are deprecated and are not exposed in the headers.  Although they work, we should be replacing them with the libobjc2 versions as soon as possible.

This incorporates a patch by Eric.



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31265 72102866-910b-0410-8b05-ffd578937521
2010-09-09 15:06:09 +00:00
rfm
fbbfb632c8 better cope with null selectors.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31178 72102866-910b-0410-8b05-ffd578937521
2010-08-17 18:36:46 +00:00
rfm
e263f96f16 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
rfm
53beb40301 deprecates some gnustep runtime wrappers
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29697 72102866-910b-0410-8b05-ffd578937521
2010-02-22 10:13:20 +00:00
rfm
d605c6f7b5 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
rfm
9edbe1a4fc cosmetic tweaks
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29657 72102866-910b-0410-8b05-ffd578937521
2010-02-17 11:47:06 +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
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
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
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
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
5af2d9d0a2 Spelling fixes
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@21962 72102866-910b-0410-8b05-ffd578937521
2005-11-06 13:53:40 +00:00
fedor
376e495dad * Update FSF Address.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@21245 72102866-910b-0410-8b05-ffd578937521
2005-05-22 03:32:16 +00:00
CaS
d05bb0584e Fix fosdem changes and a few bugs exposed by them.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@20811 72102866-910b-0410-8b05-ffd578937521
2005-02-28 17:18:54 +00:00
CaS
735749c30c minor optimisation
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@20097 72102866-910b-0410-8b05-ffd578937521
2004-09-20 10:10:10 +00:00
ayers
b803fe27a6 * Headers/Foundation/NSMethodSignature.h:
(NSArgumentInfo): Document limitations of NSArgumentInfo's
        offset and registier information.  Match size for NO_GNUSTEP.
        (NSMethodSignature): Match ivar name with runtime information.

        * Source/GSFFCallInvocation.m
        * Source/GSFFIInvocation.m
        * Source/NSInvocation.m
        (gs_method_for_receiver_and_selector)
        ([-invokeWithTarget:]): Use GSGetMethod instead of deprecated
        GSGetInstanceMethod and GSGetClassMethod.
        * Source/NSConnection.m ([-_service_typeForSelector]): Ditto.
        * Source/NSDistantObject.m ([+respondsToSelector]): Ditto.
        * Source/NSObject.m ([+instanceMethodSignatureForSelector:])
        ([-methodSignatureForSelector:])
        ([+descriptionForInstanceMethod], [-descriptionForMethod]): Ditto.
        * Source/NSProtocolChecker.m ([-methodSignatureForSelector]): Ditto.
        * Source/NSProxy.m ([+methodSignatureForSelector])
        ([-methodSignatureForSelector]): Ditto.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@19896 72102866-910b-0410-8b05-ffd578937521
2004-08-20 17:53:16 +00:00
arobert
dbdfcfab37 added GSdoc comments to class, method, and function declarations; for some classes some comments were already in the source file (not the header), in which case further comments were added here; otherwise comments were put in the headers
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@19588 72102866-910b-0410-8b05-ffd578937521
2004-06-22 22:40:40 +00:00
CaS
3828461015 Minor tidy up for methodForSelector:
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@19183 72102866-910b-0410-8b05-ffd578937521
2004-04-25 11:08:52 +00:00
ayers
38143e6e56 Various GSObjCRuntime usage cleanups.
See ChangeLog for details.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@17533 72102866-910b-0410-8b05-ffd578937521
2003-08-24 23:07:41 +00:00
fedor
3767bc44fc Fix include
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@17421 72102866-910b-0410-8b05-ffd578937521
2003-08-03 03:57:53 +00:00
CaS
4956796298 Fix a few oddities
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@17411 72102866-910b-0410-8b05-ffd578937521
2003-08-01 10:15:11 +00:00
ayers
73dc4cb9f6 Header reorganizsateion - Please refer to ChangeLog
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@17407 72102866-910b-0410-8b05-ffd578937521
2003-07-31 23:49:32 +00:00
CaS
2c6ab181bd iMinor fox for DO
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@17266 72102866-910b-0410-8b05-ffd578937521
2003-07-20 18:43:35 +00:00
ayers
00981688aa * Source/GSFFCallInvocation.m
(gs_method_for_receiver_and_selector): Replace usage of
        class_get_instance/class_method with GSGetInstance/ClassMethod and
        Method_t with GSMethod.
        (gs_find_by_receiver_best_typed_sel): Ditto.
        (GSInvocationCallback): Ditto.
        ([GSFFCallInvocation -invokeWithTarget:]): Ditto.
        * Source/GSFFIInvocation.m
        (gs_method_for_receiver_and_selector): Ditto.
        (gs_find_by_receiver_best_typed_sel): Ditto.
        (GSFFIInvocationCallback): Ditto.
        ([GSFFIInvocation -invokeWithTarget:]): Ditto.
        * Source/NSConnection.m
        ([NSConnection -_service_typeForSelector:]): Ditto.
        * Source/NSInvocation.m
        ([NSInvocation -invokeWithTarget:]): Ditto.
        * Source/NSObject.m
        ([NSObject +instanceMethodSignatureForSelector:]): Ditto.
        ([NDObject -methodSignatureForSelector:]): Ditto.
        ([NSObject +descriptionForInstanceMethod:]): Ditto.
        ([NSOnject -descriptionForMethod:]: Ditto.
        * Source/NSProxy.m
        ([NSProxy +methodSignatureForSelector:]): Ditto.
        ([NSProxy -methodSignatureForSelector:]): Ditto.
        * Source/NSDistantObject.m
        ([NSObject -selectorTypeForProxy:]): Ditto.
        ([NSDistantObject +respondsToSelector:]): Ditto. Corrected
        implementation to check class methods instead of instance methods.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@17016 72102866-910b-0410-8b05-ffd578937521
2003-06-25 10:26:29 +00:00
fedor
0e59d4552d Change syntax of includes
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@16874 72102866-910b-0410-8b05-ffd578937521
2003-06-07 01:24:41 +00:00
CaS
e96009290b Some NSProxy fixes.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@14295 72102866-910b-0410-8b05-ffd578937521
2002-08-19 10:26:07 +00:00
CaS
d4b9683acf Added date version and title
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@11814 72102866-910b-0410-8b05-ffd578937521
2001-12-18 16:54:15 +00:00
CaS
d7e28f6deb Many minor fixes for autogsdoc.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@11787 72102866-910b-0410-8b05-ffd578937521
2001-12-17 14:31:42 +00:00
fedor
6698b28f49 Comment out decl on Darwin
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@10649 72102866-910b-0410-8b05-ffd578937521
2001-08-03 20:43:40 +00:00
fedor
b786b93998 New strerror-like function
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@10043 72102866-910b-0410-8b05-ffd578937521
2001-05-31 22:39:16 +00:00
CaS
9609221f1b General improvements in responsetoSelector and methodSig code
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@9923 72102866-910b-0410-8b05-ffd578937521
2001-05-12 06:25:46 +00:00
richard
3df5d8e527 Basic tidyup for start of support for apple runtime
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@7949 72102866-910b-0410-8b05-ffd578937521
2000-10-31 16:17:33 +00:00
richard
5c87e04018 Various tidups.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@7902 72102866-910b-0410-8b05-ffd578937521
2000-10-24 11:58:25 +00:00
fedor
302c691e79 Merge from dawn
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@4853 72102866-910b-0410-8b05-ffd578937521
1999-09-09 02:56:20 +00:00
richard
3b6c200e0f Tidy isKindOfClass
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@4669 72102866-910b-0410-8b05-ffd578937521
1999-07-28 15:04:40 +00:00
richard
fcf610c797 Proprtylist extensions and coding for DO improvements plus a couple of
bugfixes


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@3492 72102866-910b-0410-8b05-ffd578937521
1998-12-18 17:05:44 +00:00
fedor
fca11c379c Make NSObject conform to specs
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@2987 72102866-910b-0410-8b05-ffd578937521
1998-09-28 20:38:02 +00:00
richard
981358a1be Tidied method signature stuff
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@2984 72102866-910b-0410-8b05-ffd578937521
1998-09-26 05:07:02 +00:00
richard
81a4225f90 Oops - comment out two methods that we can't have until we get forwardInvocation
workign properly.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@2906 72102866-910b-0410-8b05-ffd578937521
1998-08-04 15:41:31 +00:00
richard
19e723a0d7 Reinstated -respondsToSelector: and -conformsToProtocol:
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@2876 72102866-910b-0410-8b05-ffd578937521
1998-07-29 09:47:26 +00:00
netc
5f7871270a Remove dependency upon config.h by headers files and include
directly in source files because the config.h file is system
dependent, used just for compiling the source, and should
not be installed.
Some minor bug fixes.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@2619 72102866-910b-0410-8b05-ffd578937521
1997-11-06 00:51:23 +00:00
fedor
a707242d50 Conform to new makefile package changes.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@2590 72102866-910b-0410-8b05-ffd578937521
1997-10-30 19:37:24 +00:00
fedor
d88b91f6bb Retain/Release and DO patches from Richard Frith-MacDonald
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@2571 72102866-910b-0410-8b05-ffd578937521
1997-10-28 14:34:49 +00:00
fedor
aa0e1c2375 DO patches (Sep 12 from Richard Frith-MacDonald)
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@2419 72102866-910b-0410-8b05-ffd578937521
1997-09-12 17:54:10 +00:00