(GSObjCAddClassBehavior, GSObjCAddMethods): Use new macro.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@19457 72102866-910b-0410-8b05-ffd578937521
(GSAllocateMutexAt): New function.
(_GSObjCRuntimeInitializer): Define local support class.
* Headers/Additions/GNUstepBase/objc-gnu2next.h: Fixed minor
whitespace issues.
(objc_mutex_t, objc_mutex_allocate, objc_mutex_deallocate)
(objc_mutex_lock, objc_mutex_unlock, objc_mutex_trylock):
Declare
for the NeXT runtime.
* Source/Additions/GSNextRuntime.m
(objc_mutex_allocate, objc_mutex_deallocate)
(objc_mutex_lock, objc_mutex_unlock, objc_mutex_trylock):
Implement for NeXT runtime.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@19249 72102866-910b-0410-8b05-ffd578937521
forward declaration.
* Headers/Additions/GNUstepBase/GSCategories.h: Remove
declaraion of gnustep_global_lock.
(GS_INITIALIZED_LOCK): New macro.
(+[NSLock newLockAt:]): New method.
(+[NSRecursiveLock newLockAt:]): Ditto.
* Headers/Foundation/NSLock.h: Ditto.
* Source/Additions/GSCategories.m: Replace global lock with
local lock.
(_GSLockInitializer): New class to initialize local lock
safely.
(newLockAt): New static function shared by +newLockAt:
implementations to safely intialize lock variables.
(+[NSLock newLockAt:]): Implemented and documented.
(+[NSRecursiveLock newLockAt:]): Ditto.
* Source/Additions/GSCompatibility.m: Remove
gnustep_global_lock.
* Source/Additions/GSObjCRuntime.m: Remove superfluous
locking.
* Source/Additions/Unicode.m: Use new GS_INITIALIZED_LOCK
macro and replace global lock with local lock.
* Source/NSLock.m
(-[NSConditionLock lockWhenCondition:beforeDate:]):
Implemented.
* Testing/gslock.m: New test case.
* Testing/GNUmakefile: Add new test case.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@18010 72102866-910b-0410-8b05-ffd578937521
(GSCGetInstanceVariableDefinition): Make more robust.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@17195 72102866-910b-0410-8b05-ffd578937521
* Headers/gnustep/base/NSObjCRuntime.h (GSPrintf),
* Source/NSLog.m (GSPrintf): Moved implementation from NSLog.m
* to
GSObjCRuntime.m and declaration from NSObjCRuntime.h to
GSObjCRuntime.h.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@17084 72102866-910b-0410-8b05-ffd578937521
class_get_class_method they cannot work due to different
parameter expectations. Added mapping from NeXT->GNU runtime.
The other way does not work. Added simple mapping for internal
flush function __objc_update_dispatch_table_for_class and
_objc_flush_caches.
* Headers/gnustep/base/GSObjCRuntime.h/m:
Added typedef for GSMethod.
(GSGetInstanceMethod): New function.
(GSGetClassMethod): Ditto.
(GSGetInstanceMethodNotInherited): Ditto.
(GSGetClassMethodNotInherited): Ditto.
(GSFlushMethodCacheForClass): Ditto.
(flush_method_cache_for_class): Removed function which is replaced
by GSFlushMethodCacheForClass.
(GSObjCGetMethod): Removed function which is replaced by
GSGetInstanceMethod and GSGetClassMethod.
(GSObjCReplaceMethod): Removed function.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@16997 72102866-910b-0410-8b05-ffd578937521
* Source/Additions/GSObjCRuntime.m : White space patch to better
conform with GNU coding standards and improve readability.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@16878 72102866-910b-0410-8b05-ffd578937521
* Source/Additions/GSObjCRuntime.m (GSObjCReplaceImplementation):
Added new function.
* Source/Additions/GSObjCRuntime.m (search_for_method_in_class):
Renamed static function for NeXT runtime to better reflect
reality.
(GSObjCAddMethods): Updated usage.
(search_for_method_in_class): New static function for GNU runtime.
(flush_method_cache_for_class): New function.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@16252 72102866-910b-0410-8b05-ffd578937521