Use new GSI api

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@12359 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Richard Frith-Macdonald 2002-02-01 10:41:00 +00:00
parent 59e387cc17
commit d161236d1e
16 changed files with 18 additions and 138 deletions

View file

@ -1,3 +1,21 @@
2002-02-01 Richard Frith-Macdonald <rfm@gnu.org>
* Source/GSAttributedString.m: Move to assuming new GSI api.
* Source/NSHashTable.m: ditto
* Source/NSMapTable.m: ditto
* Source/GSCountedSet.m: ditto
* Source/GSDictionary.m: ditto
* Source/GSFFCallInvocation.m: ditto
* Source/NSArchiver.m: ditto
* Source/NSConnection.m: ditto
* Source/NSFileManager.m: ditto
* Source/NSNotificationCenter.m: ditto
* Source/NSObject.m: ditto
* Source/NSPortCoder.m: ditto
* Source/NSRunLoop.m: ditto
* Source/NSSerializer.m: ditto
* Source/NSUnarchiver.m: ditto
2002-02-01 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSHashTable.m: Fixed bug intorduced by last change to add

View file

@ -91,20 +91,11 @@
#ifdef GSI_NEW 1
#define GSI_MAP_RETAIN_KEY(M, X)
#define GSI_MAP_RELEASE_KEY(M, X)
#define GSI_MAP_RETAIN_VAL(M, X)
#define GSI_MAP_RELEASE_VAL(M, X)
#define GSI_MAP_EQUAL(M, X,Y) [(X).obj isEqualToDictionary: (Y).obj]
#else
#define GSI_MAP_RETAIN_KEY(X)
#define GSI_MAP_RELEASE_KEY(X)
#define GSI_MAP_RETAIN_VAL(X)
#define GSI_MAP_RELEASE_VAL(X)
#define GSI_MAP_EQUAL(X,Y) [(X).obj isEqualToDictionary: (Y).obj]
#endif
#define GSI_MAP_KTYPES GSUNION_OBJ
#define GSI_MAP_VTYPES GSUNION_INT
@ -161,11 +152,7 @@ unCacheAttributes(NSDictionary *attrs)
{
GSIMapNode node;
#ifdef GSI_NEW
node = GSIMapNodeForKeyInBucket(&attrMap, bucket, (GSIMapKey)attrs);
#else
node = GSIMapNodeForKeyInBucket(bucket, (GSIMapKey)attrs);
#endif
if (node != 0)
{
if (--node->value.uint == 0)

View file

@ -32,14 +32,8 @@
#include <Foundation/NSDebug.h>
#ifdef GSI_NEW
#define GSI_MAP_RETAIN_VAL(M, X)
#define GSI_MAP_RELEASE_VAL(M, X)
#else
#define GSI_MAP_RETAIN_VAL(X)
#define GSI_MAP_RELEASE_VAL(X)
#endif
#define GSI_MAP_KTYPES GSUNION_OBJ
#define GSI_MAP_VTYPES GSUNION_INT
@ -298,11 +292,7 @@
{
GSIMapNode node;
#ifdef GSI_NEW
node = GSIMapNodeForKeyInBucket(&map, bucket, (GSIMapKey)anObject);
#else
node = GSIMapNodeForKeyInBucket(bucket, (GSIMapKey)anObject);
#endif
if (node != 0)
{
if (--node->value.uint == 0)

View file

@ -39,17 +39,10 @@
*/
#define GSI_MAP_KTYPES GSUNION_OBJ
#define GSI_MAP_VTYPES GSUNION_OBJ
#ifdef GSI_NEW
#define GSI_MAP_HASH(M, X) [X.obj hash]
#define GSI_MAP_EQUAL(M, X,Y) [X.obj isEqual: Y.obj]
#define GSI_MAP_RETAIN_KEY(M, X) ((id)(X).obj) = \
[((id)(X).obj) copyWithZone: map->zone]
#else
#define GSI_MAP_HASH(X) [X.obj hash]
#define GSI_MAP_EQUAL(X,Y) [X.obj isEqual: Y.obj]
#define GSI_MAP_RETAIN_KEY(X) ((id)(X).obj) = \
[((id)(X).obj) copyWithZone: map->zone]
#endif
#include <base/GSIMap.h>

View file

@ -106,21 +106,12 @@ ReturnTypeEqualsReturnType (vacallReturnTypeInfo *a, vacallReturnTypeInfo *b)
&& (a->type == b->type);
}
#ifdef GSI_NEW
#define GSI_MAP_HASH(M, X) ReturnTypeHash (X.ptr)
#define GSI_MAP_EQUAL(M, X,Y) ReturnTypeEqualsReturnType (X.ptr, Y.ptr)
#define GSI_MAP_RETAIN_KEY(M, X)
#define GSI_MAP_RETAIN_VAL(M, X)
#define GSI_MAP_RELEASE_KEY(M, X)
#define GSI_MAP_RELEASE_VAL(M, X)
#else
#define GSI_MAP_HASH(X) ReturnTypeHash (X.ptr)
#define GSI_MAP_EQUAL(X,Y) ReturnTypeEqualsReturnType (X.ptr, Y.ptr)
#define GSI_MAP_RETAIN_KEY(X)
#define GSI_MAP_RETAIN_VAL(X)
#define GSI_MAP_RELEASE_KEY(X)
#define GSI_MAP_RELEASE_VAL(X)
#endif
#include <base/GSIMap.h>

View file

@ -28,21 +28,12 @@
/*
* Setup for inline operation of pointer map tables.
*/
#ifdef GSI_NEW
#define GSI_MAP_RETAIN_KEY(M, X)
#define GSI_MAP_RELEASE_KEY(M, X)
#define GSI_MAP_RETAIN_VAL(M, X)
#define GSI_MAP_RELEASE_VAL(M, X)
#define GSI_MAP_HASH(M, X) ((X).uint)
#define GSI_MAP_EQUAL(M, X,Y) ((X).uint == (Y).uint)
#else
#define GSI_MAP_RETAIN_KEY(X)
#define GSI_MAP_RELEASE_KEY(X)
#define GSI_MAP_RETAIN_VAL(X)
#define GSI_MAP_RELEASE_VAL(X)
#define GSI_MAP_HASH(X) ((X).uint)
#define GSI_MAP_EQUAL(X ,Y) ((X).uint == (Y).uint)
#endif
#include <base/GSIMap.h>

View file

@ -37,21 +37,12 @@
/*
* Setup for inline operation of pointer map tables.
*/
#ifdef GSI_NEW
#define GSI_MAP_RETAIN_KEY(M, X)
#define GSI_MAP_RELEASE_KEY(M, X)
#define GSI_MAP_RETAIN_VAL(M, X)
#define GSI_MAP_RELEASE_VAL(M, X)
#define GSI_MAP_HASH(M, X) ((X).uint ^ ((X).uint >> 3))
#define GSI_MAP_EQUAL(M, X,Y) ((X).ptr == (Y).ptr)
#else
#define GSI_MAP_RETAIN_KEY(X)
#define GSI_MAP_RELEASE_KEY(X)
#define GSI_MAP_RETAIN_VAL(X)
#define GSI_MAP_RELEASE_VAL(X)
#define GSI_MAP_HASH(X) ((X).uint ^ ((X).uint >> 3))
#define GSI_MAP_EQUAL(X,Y) ((X).ptr == (Y).ptr)
#endif
#include <base/GSIMap.h>

View file

@ -1377,15 +1377,9 @@ inline void gsedRelease(GSEnumeratedDirectory X)
}
#define GSI_ARRAY_TYPES 0
#ifdef GSI_NEW
#define GSI_ARRAY_TYPE GSEnumeratedDirectory
#define GSI_ARRAY_RELEASE(A, X) gsedRelease(X.ext)
#define GSI_ARRAY_RETAIN(A, X)
#else
#define GSI_ARRAY_EXTRA GSEnumeratedDirectory
#define GSI_ARRAY_RELEASE(X) gsedRelease(X.ext)
#define GSI_ARRAY_RETAIN(X)
#endif
#include <base/GSIArray.h>

View file

@ -39,7 +39,6 @@
#include "NSCallBacks.h"
#define GSI_NEW 1
/*
* The 'Fastmap' stuff provides an inline implementation of a hash
* table - for maximum performance.

View file

@ -45,8 +45,6 @@ typedef struct {
NSMapTableValueCallBacks v;
} extraData;
#define GSI_NEW 1
/*
* The 'Fastmap' stuff provides an inline implementation of a mapping
* table - for maximum performance.

View file

@ -111,19 +111,12 @@ static void obsFree(Observation *o);
#define GSI_ARRAY_TYPES 0
#ifdef GSI_NEW
#define GSI_ARRAY_TYPE Observation*
#define GSI_ARRAY_RELEASE(A, X) obsFree(X.ext)
#define GSI_ARRAY_RETAIN(A, X) obsRetain(X.ext)
#else
#define GSI_ARRAY_EXTRA Observation*
#define GSI_ARRAY_RELEASE(X) obsFree(X.ext)
#define GSI_ARRAY_RETAIN(X) obsRetain(X.ext)
#endif
#include <base/GSIArray.h>
#ifdef GSI_NEW
#define GSI_MAP_RETAIN_KEY(M, X)
#define GSI_MAP_RELEASE_KEY(M, X) ({if ((((gsaddr)X.obj) & 1) == 0) \
RELEASE(X.obj);})
@ -131,15 +124,6 @@ static void obsFree(Observation *o);
#define GSI_MAP_EQUAL(M, X,Y) doEqual(X.obj, Y.obj)
#define GSI_MAP_RETAIN_VAL(M, X)
#define GSI_MAP_RELEASE_VAL(M, X)
#else
#define GSI_MAP_RETAIN_KEY(X)
#define GSI_MAP_RELEASE_KEY(X) ({if ((((gsaddr)X.obj) & 1) == 0) \
RELEASE(X.obj);})
#define GSI_MAP_HASH(X) doHash(X.obj)
#define GSI_MAP_EQUAL(X,Y) doEqual(X.obj, Y.obj)
#define GSI_MAP_RETAIN_VAL(X)
#define GSI_MAP_RELEASE_VAL(X)
#endif
#define GSI_MAP_KTYPES GSUNION_OBJ|GSUNION_INT
#define GSI_MAP_VTYPES GSUNION_PTR

View file

@ -225,21 +225,12 @@ NSDecrementExtraRefCountWasZero(id anObject)
#else
#ifdef GSI_NEW
#define GSI_MAP_EQUAL(M, X, Y) (X.obj == Y.obj)
#define GSI_MAP_HASH(M, X) (X.ptr >> 2)
#define GSI_MAP_RETAIN_KEY(M, X)
#define GSI_MAP_RELEASE_KEY(M, X)
#define GSI_MAP_RETAIN_VAL(M, X)
#define GSI_MAP_RELEASE_VAL(M, X)
#else
#define GSI_MAP_EQUAL(X, Y) (X.obj == Y.obj)
#define GSI_MAP_HASH(X) (X.ptr >> 2)
#define GSI_MAP_RETAIN_KEY(X)
#define GSI_MAP_RELEASE_KEY(X)
#define GSI_MAP_RETAIN_VAL(X)
#define GSI_MAP_RELEASE_VAL(X)
#endif
#define GSI_MAP_KTYPES GSUNION_OBJ
#define GSI_MAP_VTYPES GSUNION_INT

View file

@ -49,34 +49,20 @@
/*
* Setup for inline operation of pointer map tables.
*/
#ifdef GSI_NEW
#define GSI_MAP_RETAIN_KEY(M, X)
#define GSI_MAP_RELEASE_KEY(M, X)
#define GSI_MAP_RETAIN_VAL(M, X)
#define GSI_MAP_RELEASE_VAL(M, X)
#define GSI_MAP_HASH(M, X) ((X).uint)
#define GSI_MAP_EQUAL(M, X,Y) ((X).uint == (Y).uint)
#else
#define GSI_MAP_RETAIN_KEY(X)
#define GSI_MAP_RELEASE_KEY(X)
#define GSI_MAP_RETAIN_VAL(X)
#define GSI_MAP_RELEASE_VAL(X)
#define GSI_MAP_HASH(X) ((X).uint)
#define GSI_MAP_EQUAL(X,Y) ((X).uint == (Y).uint)
#endif
#include <base/GSIMap.h>
/*
* Setup for inline operation of arrays.
*/
#ifdef GSI_NEW
#define GSI_ARRAY_RETAIN(A, X)
#define GSI_ARRAY_RELEASE(A, X)
#else
#define GSI_ARRAY_RETAIN(X)
#define GSI_ARRAY_RELEASE(X)
#endif
#define GSI_ARRAY_TYPES GSUNION_OBJ|GSUNION_SEL|GSUNION_STR
#include <base/GSIArray.h>

View file

@ -308,8 +308,6 @@ static inline BOOL timerInvalidated(NSTimer* timer)
#define GSI_ARRAY_TYPES GSUNION_OBJ
#ifdef GSI_NEW
#if GS_WITH_GC == 0
#define GSI_ARRAY_RELEASE(A, X) [(X).obj release]
#define GSI_ARRAY_RETAIN(A, X) [(X).obj retain]
@ -318,18 +316,6 @@ static inline BOOL timerInvalidated(NSTimer* timer)
#define GSI_ARRAY_RETAIN(A, X)
#endif
#else
#if GS_WITH_GC == 0
#define GSI_ARRAY_RELEASE(X) [(X).obj release]
#define GSI_ARRAY_RETAIN(X) [(X).obj retain]
#else
#define GSI_ARRAY_RELEASE(X)
#define GSI_ARRAY_RETAIN(X)
#endif
#endif
#include <base/GSIArray.h>
static NSComparisonResult aSort(GSIArrayItem i0, GSIArrayItem i1)

View file

@ -50,34 +50,20 @@
/*
* Setup for inline operation of string map tables.
*/
#ifdef GSI_NEW
#define GSI_MAP_RETAIN_KEY(M, X)
#define GSI_MAP_RELEASE_KEY(M, X)
#define GSI_MAP_RETAIN_VAL(M, X)
#define GSI_MAP_RELEASE_VAL(M, X)
#define GSI_MAP_HASH(M, X) [(X).obj hash]
#define GSI_MAP_EQUAL(M, X,Y) [(X).obj isEqualToString: (Y).obj]
#else
#define GSI_MAP_RETAIN_KEY(X)
#define GSI_MAP_RELEASE_KEY(X)
#define GSI_MAP_RETAIN_VAL(X)
#define GSI_MAP_RELEASE_VAL(X)
#define GSI_MAP_HASH(X) [(X).obj hash]
#define GSI_MAP_EQUAL(X,Y) [(X).obj isEqualToString: (Y).obj]
#endif
#include <base/GSIMap.h>
/*
* Setup for inline operation of string arrays.
*/
#ifdef GSI_NEW
#define GSI_ARRAY_RETAIN(A, X)
#define GSI_ARRAY_RELEASE(A, X)
#else
#define GSI_ARRAY_RETAIN(X)
#define GSI_ARRAY_RELEASE(X)
#endif
#define GSI_ARRAY_TYPES GSUNION_OBJ
#include <base/GSIArray.h>

View file

@ -34,13 +34,8 @@
/*
* Setup for inline operation of arrays.
*/
#ifdef GSI_NEW
#define GSI_ARRAY_RETAIN(A, X)
#define GSI_ARRAY_RELEASE(A, X)
#else
#define GSI_ARRAY_RETAIN(X)
#define GSI_ARRAY_RELEASE(X)
#endif
#define GSI_ARRAY_TYPES GSUNION_OBJ|GSUNION_SEL|GSUNION_STR
#include <base/GSIArray.h>