From 40e08a0da9c09ac4a61e77452c18d8f9cc3d5d0d Mon Sep 17 00:00:00 2001 From: richard Date: Fri, 21 May 1999 15:21:41 +0000 Subject: [PATCH] Added NSZoneMallocAtomic() and tidied git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@4277 72102866-910b-0410-8b05-ffd578937521 --- ChangeLog | 5 +++ Headers/gnustep/base/NSZone.h | 77 +++++++++++++++++++++++++++-------- 2 files changed, 65 insertions(+), 17 deletions(-) diff --git a/ChangeLog b/ChangeLog index e1d55be13..8e189d12d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Fri May 21 16:40:00 1999 Richard Frith-Macdonald + + * Source/include/NSZone.h: Added NSZoneMallocAtomic() for Helge + and in anticipation of adding garbage collection support some day. + Fri May 21 9:56:00 1999 Richard Frith-Macdonald * Source/include/NSObject.h: Bracket macro definitions with #ifndef diff --git a/Headers/gnustep/base/NSZone.h b/Headers/gnustep/base/NSZone.h index ecf1ef953..42f3739e6 100644 --- a/Headers/gnustep/base/NSZone.h +++ b/Headers/gnustep/base/NSZone.h @@ -126,6 +126,17 @@ extern inline NSString* NSZoneName (NSZone *zone) return nil; } +#ifndef NO_GNUSTEP + +extern inline void* NSZoneMallocAtomic (NSZone *zone, size_t size) +{ + void *ptr = (void*)GC_MALLOC_ATOMIC(size); + + if (ptr == 0) + ptr = GSOutOfMemory(size, YES); + return ptr; +} + extern inline BOOL NSZoneCheck (NSZone *zone) { return YES; @@ -136,48 +147,80 @@ extern inline struct NSZoneStats NSZoneStats (NSZone *zone) struct NSZoneStats stats = { 0 }; return stats; } +#endif #else /* GS_WITH_GC */ extern NSZone* NSCreateZone (size_t start, size_t gran, BOOL canFree); extern inline NSZone* NSDefaultMallocZone (void) -{ return __nszone_private_hidden_default_zone; } +{ + return __nszone_private_hidden_default_zone; +} extern NSZone* NSZoneFromPointer (void *ptr); extern inline void* NSZoneMalloc (NSZone *zone, size_t size) -{ if (!zone) zone = NSDefaultMallocZone(); -return (zone->malloc)(zone, size); } +{ + if (!zone) + zone = NSDefaultMallocZone(); + return (zone->malloc)(zone, size); +} extern void* NSZoneCalloc (NSZone *zone, size_t elems, size_t bytes); extern inline void* NSZoneRealloc (NSZone *zone, void *ptr, size_t size) -{ if (!zone) zone = NSDefaultMallocZone(); -return (zone->realloc)(zone, ptr, size); } +{ + if (!zone) + zone = NSDefaultMallocZone(); + return (zone->realloc)(zone, ptr, size); +} extern inline void NSRecycleZone (NSZone *zone) -{ if (!zone) zone = NSDefaultMallocZone(); -(zone->recycle)(zone); } +{ + if (!zone) + zone = NSDefaultMallocZone(); + (zone->recycle)(zone); +} extern inline void NSZoneFree (NSZone *zone, void *ptr) -{ if (!zone) zone = NSDefaultMallocZone(); -(zone->free)(zone, ptr); } +{ + if (!zone) + zone = NSDefaultMallocZone(); + (zone->free)(zone, ptr); +} extern void NSSetZoneName (NSZone *zone, NSString *name); extern inline NSString* NSZoneName (NSZone *zone) -{ if (!zone) zone = NSDefaultMallocZone(); -return zone->name; } +{ + if (!zone) + zone = NSDefaultMallocZone(); + return zone->name; +} -extern inline BOOL NSZoneCheck (NSZone *zone) // Not in OpenStep -{ if (!zone) zone = NSDefaultMallocZone(); -return (zone->check)(zone); } +#ifndef NO_GNUSTEP +extern inline void* NSZoneMallocAtomic (NSZone *zone, size_t size) +{ + if (!zone) + zone = NSDefaultMallocZone(); + return (zone->malloc)(zone, size); +} + +extern inline BOOL NSZoneCheck (NSZone *zone) +{ + if (!zone) + zone = NSDefaultMallocZone(); + return (zone->check)(zone); +} -/* Not in OpenStep */ extern inline struct NSZoneStats NSZoneStats (NSZone *zone) -{ if (!zone) zone = NSDefaultMallocZone(); -return (zone->stats)(zone); } +{ + if (!zone) + zone = NSDefaultMallocZone(); + return (zone->stats)(zone); +} +#endif /* NO_GNUSTEP */ #endif /* GS_WITH_GC */