Merge in changes from NET-Community.

Add DLL support on Windows platforms.
Numerous minor bug fixes related to Windows platforms.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@2420 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
netc 1997-09-13 17:52:31 +00:00
parent aa0e1c2375
commit 2b06ef4c58
48 changed files with 2409 additions and 697 deletions

View file

@ -122,6 +122,9 @@ extraRefCount (id anObject)
{
if (self == [NSObject class])
{
// Create the global lock
gnustep_global_lock = [[NSRecursiveLock alloc] init];
retain_counts = o_map_with_callbacks (o_callbacks_for_non_owned_void_p,
o_callbacks_for_int);
retain_counts_gate = objc_mutex_allocate ();
@ -746,3 +749,50 @@ extraRefCount (id anObject)
}
@end
@implementation NSObject (OPENSTEP)
/* OPENSTEP Object class extensions
as distinquished from the OpenStep specification. */
- performSelector: (SEL)aSelector
{
IMP msg = objc_msg_lookup(self, aSelector);
if (!msg)
{
[NSException
raise: NSGenericException
format: @"invalid selector passed to %s", sel_get_name(_cmd)];
return nil;
}
return (*msg)(self, aSelector);
}
- performSelector: (SEL)aSelector withObject: anObject
{
IMP msg = objc_msg_lookup(self, aSelector);
if (!msg)
{
[NSException
raise: NSGenericException
format: @"invalid selector passed to %s", sel_get_name(_cmd)];
return nil;
}
return (*msg)(self, aSelector, anObject);
}
- performSelector: (SEL)aSelector withObject: object1 withObject: object2
{
IMP msg = objc_msg_lookup(self, aSelector);
if (!msg)
{
[NSException
raise: NSGenericException
format: @"invalid selector passed to %s", sel_get_name(_cmd)];
return nil;
}
return (*msg)(self, aSelector, object1, object2);
}
@end