Commit graph

93 commits

Author SHA1 Message Date
Eric Wasylishen
7282e58e08 * Source/NSDistantObject.m: #ifdef to disable category
on Object was forgotten around the interface


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31280 72102866-910b-0410-8b05-ffd578937521
2010-09-09 22:18:01 +00:00
David Chisnall
4488708e84 Fix a load of warnings from implicit function declarations. A lot were caused by ctype.h and string.h stuff being used everywhere in GNUstep but not included anywhere - they're now included in common.h (at least string.h should also be in Foundation.h - on OS X it is implicitly included via some chain of things from Foundation.h).
All of the sel_* stuff is now replaced with the newer APIs.  As a side-effect, a blob of code that was copied-and-pasted all over GNUstep has now been moved into ObjectiveC2 and just called.

Class posing with libobjc2 will now throw an exception, rather than just aborting.  



git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31268 72102866-910b-0410-8b05-ffd578937521
2010-09-09 16:30:10 +00:00
David Chisnall
7a80adeb9b 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
David Chisnall
0898a4c4b2 Fix the return type of NSDistantObject +autorelease to return id, not void. Type-dependent dispatch in libobjc2 discovered that some things are picking up this method signature by accident and calling NSObject's -autorelease with the wrong types.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31224 72102866-910b-0410-8b05-ffd578937521
2010-08-31 22:02:38 +00:00
Richard Frith-MacDonald
821a21b54d 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
Richard Frith-MacDonald
50662ad093 avoid some compiler warnings
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@31107 72102866-910b-0410-8b05-ffd578937521
2010-08-10 10:38:50 +00:00
Richard Frith-MacDonald
8aadd12c71 remove a few obsolete, unused methods
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29785 72102866-910b-0410-8b05-ffd578937521
2010-02-27 06:53:43 +00:00
Richard Frith-MacDonald
4497ba7bdd Build with non-fragile ivars.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29715 72102866-910b-0410-8b05-ffd578937521
2010-02-24 10:23:47 +00:00
Richard Frith-MacDonald
8769dd8b6f 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
Richard Frith-MacDonald
7cc69dfaae 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
Richard Frith-MacDonald
7e8e79ae94 avoid unnecessary requests for signatures to remote process
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29652 72102866-910b-0410-8b05-ffd578937521
2010-02-16 17:08:47 +00:00
Richard Frith-MacDonald
21d597e740 merge back reorganisation branch
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@29615 72102866-910b-0410-8b05-ffd578937521
2010-02-14 10:48:10 +00:00
Richard Frith-MacDonald
a6c9c8749a lrge changes to remove mframe
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28778 72102866-910b-0410-8b05-ffd578937521
2009-10-05 16:00:28 +00:00
Richard Frith-MacDonald
80fe7ffde0 fixup indentaton.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28352 72102866-910b-0410-8b05-ffd578937521
2009-06-15 07:13:11 +00:00
Gregory John Casamento
a4996f8d05 Incorporated patch by David Chisnall.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@28326 72102866-910b-0410-8b05-ffd578937521
2009-06-05 22:16:07 +00:00
Richard Frith-MacDonald
b830b55dee 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
Richard Frith-MacDonald
952af9c197 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
Richard Frith-MacDonald
b2b14398d2 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
Richard Frith-MacDonald
62559023b9 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
Richard Frith-MacDonald
0ebe68ae48 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
Richard Frith-MacDonald
c2e8c881e7 Some cleanup in preparation for next release.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@22618 72102866-910b-0410-8b05-ffd578937521
2006-03-08 11:28:59 +00:00
Richard Frith-Macdonald
da398713b7 More sized type tidyups
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@22293 72102866-910b-0410-8b05-ffd578937521
2006-01-11 09:32:13 +00:00
Richard Frith-Macdonald
15a2e17e48 Tidy use of sized datatypes. Check for invalid asumption of interchangability
of int/long in encoder/decoder methods.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@22291 72102866-910b-0410-8b05-ffd578937521
2006-01-11 08:37:16 +00:00
Richard Frith-Macdonald
06981169ed 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
Richard Frith-Macdonald
c9c6734169 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
Adam Fedor
f0512c406e * Remove objc/Protocol.h include from NSObject to avoid warnings
with conflicting method signatures.
* Headers/Foundation/NSConnection.h: Change Object categories
to NSObject.
* Source/NSConnection.m: Idem.
* Headers/Foundation/NSObject.h: Don't include objc/Protocol.h
add a few missing things.
* Source/NSDate.m ([NSDate -isEqual:]): Use isKindOfClass.
* Source/NSDistantObject.m, Source/NSProtocolChecker.m:
Include objc/Protocol.h
* Source/NSSerializer.m: Add method sig for performv::


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@21322 72102866-910b-0410-8b05-ffd578937521
2005-06-17 14:51:57 +00:00
Adam Fedor
fcc13ccd0f * 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
Richard Frith-Macdonald
fd7d6e36b0 Tidyups to avoid compiler warnings.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@20863 72102866-910b-0410-8b05-ffd578937521
2005-03-07 11:19:34 +00:00
Richard Frith-Macdonald
db7b22a4fb Tidy up use of white space so we have it after if/for/while and not after (
or before ) or padding at end of line.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@20773 72102866-910b-0410-8b05-ffd578937521
2005-02-22 11:22:44 +00:00
Alexander Malmberg
c668c9d96a * Source/NSDistantObject.m: Make proxyLocation an enum tag, not a
variable.
	* Source/NSFileManager.m (custom_strdup, append_file_to_path): Make
	static.
	* Source/NSString.m (-isEqual:): Clarify documentation.
	* Source/NSUnarchiver.m (mapClassObject, mapClassName): Make static.
	* Source/Additions/Unicode.m (GetDefEncoding): Add missing void in
	the prototype.
	* Tools/make_strings/make_strings.m (ParseFile): Remove spurious
	static on the nested function add_arg_ch.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@20163 72102866-910b-0410-8b05-ffd578937521
2004-09-27 21:32:45 +00:00
David Ayers
8cd30609bf * 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
Alexander Malmberg
b31c59f874 Fix forwarding of methods not in the proxies protocl if a protocol is set.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@19826 72102866-910b-0410-8b05-ffd578937521
2004-08-05 00:03:30 +00:00
Adrian Robert
bda35fceb3 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
Richard Frith-Macdonald
488e376948 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
Richard Frith-Macdonald
86c0a0edf0 Attempt to make conformsToProtocol work for DO
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@19155 72102866-910b-0410-8b05-ffd578937521
2004-04-19 19:29:15 +00:00
Richard Frith-Macdonald
2d361f1ad9 Fix for libffi based distributed objects (tested on macos-x)
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@18433 72102866-910b-0410-8b05-ffd578937521
2004-01-18 12:19:43 +00:00
Richard Frith-Macdonald
393e822402 Updates for improved reference count management over DO.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@17983 72102866-910b-0410-8b05-ffd578937521
2003-10-27 13:41:01 +00:00
Richard Frith-Macdonald
9ecdf6cc0b Cleanups in preparation for experimental changes to retain/relase over DO.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@17949 72102866-910b-0410-8b05-ffd578937521
2003-10-21 17:05:36 +00:00
David Ayers
fda10c748a 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
Richard Frith-Macdonald
541b235438 Hacks to work around compiler/runtime bugs with protocols.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@17482 72102866-910b-0410-8b05-ffd578937521
2003-08-15 13:20:50 +00:00
David Ayers
ac30183cd6 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
Richard Frith-Macdonald
29981f9f04 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
Richard Frith-Macdonald
8a0e568d31 Documentation
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@17117 72102866-910b-0410-8b05-ffd578937521
2003-07-04 20:22:27 +00:00
Richard Frith-Macdonald
cdf431407a Minor fix
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@17111 72102866-910b-0410-8b05-ffd578937521
2003-07-04 17:34:48 +00:00
Richard Frith-Macdonald
c1d2603060 Documentation improvements.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@17106 72102866-910b-0410-8b05-ffd578937521
2003-07-04 16:50:30 +00:00
Richard Frith-Macdonald
c056845ac4 Temprary fix for older compilers ... avoid setting protocol for proxy
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@17101 72102866-910b-0410-8b05-ffd578937521
2003-07-04 14:21:05 +00:00
Richard Frith-Macdonald
bde21db4d6 Add a couple of warning logs
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@17097 72102866-910b-0410-8b05-ffd578937521
2003-07-04 10:52:56 +00:00
Richard Frith-Macdonald
2a99982e1a Fix for fetching type information from remote system.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@17095 72102866-910b-0410-8b05-ffd578937521
2003-07-04 09:33:53 +00:00
Richard Frith-Macdonald
8831b90cc5 Fix recursion problem
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@17093 72102866-910b-0410-8b05-ffd578937521
2003-07-04 06:32:14 +00:00
David Ayers
f6c50c154d * 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