mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-22 16:33:29 +00:00
Make macros thread-safe
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@10614 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
fc5dd011c6
commit
9f5febb49d
2 changed files with 10 additions and 7 deletions
|
@ -2,6 +2,8 @@
|
|||
|
||||
* Source/GSFFCallInvocation.m: attempt to guess type signature
|
||||
when compiler gives us an untyped selector.
|
||||
* Headers/Foundation/NSObject.h: ASSIGN(), ASSIGNCOPY(), minor
|
||||
reordering to make these macros thread-safe.
|
||||
|
||||
2001-07-30 Adam Fedor <fedor@gnu.org>
|
||||
|
||||
|
|
|
@ -344,11 +344,11 @@ id __value = (id)(value); \
|
|||
id __object = (id)(object); \
|
||||
if (__value != __object) \
|
||||
{ \
|
||||
object = __value; \
|
||||
if (__value != nil) \
|
||||
{ \
|
||||
[__value retain]; \
|
||||
} \
|
||||
object = __value; \
|
||||
if (__object != nil) \
|
||||
{ \
|
||||
[__object release]; \
|
||||
|
@ -364,17 +364,18 @@ if (__value != __object) \
|
|||
#ifndef ASSIGNCOPY
|
||||
#define ASSIGNCOPY(object,value) ({\
|
||||
id __value = (value); \
|
||||
if (__value != (id)object) \
|
||||
id __object = (id)(object); \
|
||||
if (__value != __object) \
|
||||
{ \
|
||||
if (__value) \
|
||||
if (__value != nil) \
|
||||
{ \
|
||||
__value = [__value copy]; \
|
||||
} \
|
||||
if (object) \
|
||||
{ \
|
||||
[(id)object release]; \
|
||||
} \
|
||||
(id)object = __value; \
|
||||
if (__object != nil) \
|
||||
{ \
|
||||
[__object release]; \
|
||||
} \
|
||||
} \
|
||||
})
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue