New improved GSI map macros and added support for GSM alphabet.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@12210 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
CaS 2002-01-24 17:03:04 +00:00
parent 0a0dbb9373
commit e01822a928
18 changed files with 538 additions and 28 deletions

View file

@ -117,18 +117,28 @@ static void obsFree(Observation *o);
#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);})
#define GSI_MAP_HASH(M, X) doHash(X.obj)
#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
#define GSI_MAP_VEXTRA Observation*
#define GSI_MAP_EXTRA 1
#define GSI_MAP_EXTRA void*
#include <base/GSIMap.h>