NB. It seems some recent patches put ___MINGW32__ in the public headers ...
that needs to be fixed as the headers should be system independent!
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@21795 72102866-910b-0410-8b05-ffd578937521
* Source/objc-load.m (objc_load_module): resolve class links under GNU
runtime
* Headers/Additions/GNUstepBase/GSObjCRuntime.h
* Source/Additions/GSObjCRuntime.m
(GSObjCAllSubclassesOfClass,GSObjCDirectSubclassesOfClass):
New functions.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@20234 72102866-910b-0410-8b05-ffd578937521
(GSAppendMethodToList): Copy type information for the NeXT runtime.
(GSRemoveMethodFromList): Add comment about potential minor leak.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@20074 72102866-910b-0410-8b05-ffd578937521
Ignore structure names.
* Testing/nsmethodsignature.m: Added test for nested
structures. Reactivated test for signatures from older gcc
versions.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@19891 72102866-910b-0410-8b05-ffd578937521
(gs_revert_selector_names_in_list): New function.
(GSRemoveMethodList): Also revert selectors for first list.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@19759 72102866-910b-0410-8b05-ffd578937521
(GSObjCMethodNames): Unify implementation for both runtimes.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@19467 72102866-910b-0410-8b05-ffd578937521
(search_for_method_in_class, GSObjCAddClassBehavior): Use
GSMethod and GSMethodList types instead of pointers to runtime
structures.
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@19466 72102866-910b-0410-8b05-ffd578937521
(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