mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-22 16:33:29 +00:00
Bugfix for GSI code management of stored items
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@12569 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
b690be566c
commit
c24c65b21e
4 changed files with 21 additions and 18 deletions
|
@ -12,6 +12,9 @@
|
|||
limit date even if no I/O is possible.
|
||||
* Source/NSUserDefaults.m: Patch by Alexander Malmberg to try all
|
||||
listed locales rather than giving up at first failure.
|
||||
* Headers/gnustep/base/GSUnion.h: Enclose types bitmask in brackets
|
||||
to avoid *all* types being included in the union! Should decrease
|
||||
memory footprint and increase speed of many classes.
|
||||
|
||||
2002-02-13 Richard Frith-Macdonald <rfm@gnu.org>
|
||||
|
||||
|
|
|
@ -57,51 +57,51 @@
|
|||
#if defined(GSUNION) && defined(GSUNION_TYPES)
|
||||
|
||||
typedef union {
|
||||
#if (GSUNION_TYPES & GSUNION_OBJ)
|
||||
#if ((GSUNION_TYPES) & GSUNION_OBJ)
|
||||
id obj;
|
||||
NSObject *nso;
|
||||
#endif
|
||||
#if (GSUNION_TYPES & GSUNION_CLS)
|
||||
#if ((GSUNION_TYPES) & GSUNION_CLS)
|
||||
Class cls;
|
||||
#endif
|
||||
#if (GSUNION_TYPES & GSUNION_SEL)
|
||||
#if ((GSUNION_TYPES) & GSUNION_SEL)
|
||||
SEL sel;
|
||||
#endif
|
||||
#if (GSUNION_TYPES & GSUNION_CHAR)
|
||||
#if ((GSUNION_TYPES) & GSUNION_CHAR)
|
||||
char schr;
|
||||
unsigned char uchr;
|
||||
#endif
|
||||
#if (GSUNION_TYPES & GSUNION_SHORT)
|
||||
#if ((GSUNION_TYPES) & GSUNION_SHORT)
|
||||
short ssht;
|
||||
unsigned short usht;
|
||||
#endif
|
||||
#if (GSUNION_TYPES & GSUNION_INT)
|
||||
#if ((GSUNION_TYPES) & GSUNION_INT)
|
||||
int sint;
|
||||
unsigned uint;
|
||||
#endif
|
||||
#if (GSUNION_TYPES & GSUNION_LONG)
|
||||
#if ((GSUNION_TYPES) & GSUNION_LONG)
|
||||
long slng;
|
||||
unsigned long ulng;
|
||||
#endif
|
||||
#if (GSUNION_TYPES & GSUNION_PTR)
|
||||
#if ((GSUNION_TYPES) & GSUNION_PTR)
|
||||
void *ptr;
|
||||
const void *cptr;
|
||||
char *str;
|
||||
const char *cstr;
|
||||
#endif
|
||||
#if (GSUNION_TYPES & GSUNION_8B)
|
||||
#if ((GSUNION_TYPES) & GSUNION_8B)
|
||||
gss8 s8;
|
||||
gsu8 u8;
|
||||
#endif
|
||||
#if (GSUNION_TYPES & GSUNION_16B)
|
||||
#if ((GSUNION_TYPES) & GSUNION_16B)
|
||||
gss16 s16;
|
||||
gsu16 u16;
|
||||
#endif
|
||||
#if (GSUNION_TYPES & GSUNION_32B)
|
||||
#if ((GSUNION_TYPES) & GSUNION_32B)
|
||||
gss32 s32;
|
||||
gsu32 u32;
|
||||
#endif
|
||||
#if (GSUNION_TYPES & GSUNION_64B)
|
||||
#if ((GSUNION_TYPES) & GSUNION_64B)
|
||||
gss64 s64;
|
||||
gsu64 u64;
|
||||
#endif
|
||||
|
|
|
@ -64,7 +64,7 @@
|
|||
*/
|
||||
#define GSI_ARRAY_RETAIN(A, X)
|
||||
#define GSI_ARRAY_RELEASE(A, X)
|
||||
#define GSI_ARRAY_TYPES GSUNION_OBJ|GSUNION_SEL|GSUNION_STR
|
||||
#define GSI_ARRAY_TYPES GSUNION_OBJ|GSUNION_SEL|GSUNION_PTR
|
||||
|
||||
#include <base/GSIArray.h>
|
||||
|
||||
|
@ -1803,7 +1803,7 @@ static IMP _xRefImp; /* Serialize a crossref. */
|
|||
}
|
||||
GSIArrayAddItem(_clsAry, (GSIArrayItem)nil);
|
||||
GSIArrayAddItem(_objAry, (GSIArrayItem)nil);
|
||||
GSIArrayAddItem(_ptrAry, (GSIArrayItem)0);
|
||||
GSIArrayAddItem(_ptrAry, (GSIArrayItem)(void*)0);
|
||||
}
|
||||
NS_HANDLER
|
||||
{
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
*/
|
||||
#define GSI_ARRAY_RETAIN(A, X)
|
||||
#define GSI_ARRAY_RELEASE(A, X)
|
||||
#define GSI_ARRAY_TYPES GSUNION_OBJ|GSUNION_SEL|GSUNION_STR
|
||||
#define GSI_ARRAY_TYPES GSUNION_OBJ|GSUNION_SEL|GSUNION_PTR
|
||||
|
||||
#include <base/GSIArray.h>
|
||||
|
||||
|
@ -1191,15 +1191,15 @@ static Class NSDataMallocClass;
|
|||
*/
|
||||
clsMap = NSZoneMalloc(zone, sizeof(GSIArray_t)*3);
|
||||
GSIArrayInitWithZoneAndCapacity(clsMap, zone, sizeC);
|
||||
GSIArrayAddItem(clsMap, (GSIArrayItem)0);
|
||||
GSIArrayAddItem(clsMap, (GSIArrayItem)(void*)0);
|
||||
|
||||
objMap = &clsMap[1];
|
||||
GSIArrayInitWithZoneAndCapacity(objMap, zone, sizeO);
|
||||
GSIArrayAddItem(objMap, (GSIArrayItem)0);
|
||||
GSIArrayAddItem(objMap, (GSIArrayItem)(void*)0);
|
||||
|
||||
ptrMap = &clsMap[2];
|
||||
GSIArrayInitWithZoneAndCapacity(ptrMap, zone, sizeP);
|
||||
GSIArrayAddItem(ptrMap, (GSIArrayItem)0);
|
||||
GSIArrayAddItem(ptrMap, (GSIArrayItem)(void*)0);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue