mirror of
https://github.com/gnustep/libs-base.git
synced 2025-06-01 01:01:03 +00:00
Hide internals of _NSZone struct for consistency with OSX
This commit is contained in:
parent
52c127c950
commit
b49af95359
2 changed files with 41 additions and 38 deletions
|
@ -30,28 +30,6 @@
|
|||
#define __NSZone_h_GNUSTEP_BASE_INCLUDE
|
||||
#import "GNUstepBase/GSVersionMacros.h"
|
||||
|
||||
/**
|
||||
* Primary structure representing an <code>NSZone</code>. Technically it
|
||||
* consists of a set of function pointers for zone upkeep functions plus some
|
||||
* other things-
|
||||
<example>
|
||||
{
|
||||
// Functions for zone.
|
||||
void *(*malloc)(struct _NSZone *zone, size_t size);
|
||||
void *(*realloc)(struct _NSZone *zone, void *ptr, size_t size);
|
||||
void (*free)(struct _NSZone *zone, void *ptr);
|
||||
void (*recycle)(struct _NSZone *zone);
|
||||
BOOL (*check)(struct _NSZone *zone);
|
||||
BOOL (*lookup)(struct _NSZone *zone, void *ptr);
|
||||
|
||||
// Zone statistics (not always maintained).
|
||||
struct NSZoneStats (*stats)(struct _NSZone *zone);
|
||||
|
||||
size_t gran; // Zone granularity (passed in on initialization)
|
||||
NSString *name; // Name of zone (default is 'nil')
|
||||
NSZone *next; // Pointer used for internal management of multiple zones.
|
||||
}</example>
|
||||
*/
|
||||
typedef struct _NSZone NSZone;
|
||||
|
||||
#import <Foundation/NSObjCRuntime.h>
|
||||
|
@ -62,22 +40,6 @@ typedef struct _NSZone NSZone;
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
struct _NSZone
|
||||
{
|
||||
/* Functions for zone. */
|
||||
void *(*malloc)(struct _NSZone *zone, size_t size);
|
||||
void *(*realloc)(struct _NSZone *zone, void *ptr, size_t size);
|
||||
void (*free)(struct _NSZone *zone, void *ptr);
|
||||
void (*recycle)(struct _NSZone *zone);
|
||||
BOOL (*check)(struct _NSZone *zone);
|
||||
BOOL (*lookup)(struct _NSZone *zone, void *ptr);
|
||||
struct NSZoneStats (*stats)(struct _NSZone *zone);
|
||||
|
||||
size_t gran; // Zone granularity
|
||||
__unsafe_unretained NSString *name; // Name of zone (default is 'nil')
|
||||
NSZone *next;
|
||||
};
|
||||
|
||||
/**
|
||||
* Creates a new zone of start bytes, which will grow and shrink by
|
||||
* granularity bytes. If canFree is 0, memory in zone is allocated but
|
||||
|
|
|
@ -93,6 +93,47 @@
|
|||
#import "GSPrivate.h"
|
||||
#import "GSPThread.h"
|
||||
|
||||
/**
|
||||
* Primary structure representing an <code>NSZone</code>. Technically it
|
||||
* consists of a set of function pointers for zone upkeep functions plus some
|
||||
* other things-
|
||||
<example>
|
||||
{
|
||||
// Functions for zone.
|
||||
void *(*malloc)(struct _NSZone *zone, size_t size);
|
||||
void *(*realloc)(struct _NSZone *zone, void *ptr, size_t size);
|
||||
void (*free)(struct _NSZone *zone, void *ptr);
|
||||
void (*recycle)(struct _NSZone *zone);
|
||||
BOOL (*check)(struct _NSZone *zone);
|
||||
BOOL (*lookup)(struct _NSZone *zone, void *ptr);
|
||||
|
||||
// Zone statistics (not always maintained).
|
||||
struct NSZoneStats (*stats)(struct _NSZone *zone);
|
||||
|
||||
size_t gran; // Zone granularity (passed in on initialization)
|
||||
NSString *name; // Name of zone (default is 'nil')
|
||||
NSZone *next; // Pointer used for internal management of multiple zones.
|
||||
}</example>
|
||||
*/
|
||||
|
||||
struct _NSZone
|
||||
{
|
||||
/* Functions for zone. */
|
||||
void *(*malloc)(struct _NSZone *zone, size_t size);
|
||||
void *(*realloc)(struct _NSZone *zone, void *ptr, size_t size);
|
||||
void (*free)(struct _NSZone *zone, void *ptr);
|
||||
void (*recycle)(struct _NSZone *zone);
|
||||
BOOL (*check)(struct _NSZone *zone);
|
||||
BOOL (*lookup)(struct _NSZone *zone, void *ptr);
|
||||
struct NSZoneStats (*stats)(struct _NSZone *zone);
|
||||
|
||||
size_t gran; // Zone granularity
|
||||
__unsafe_unretained NSString *name; // Name of zone (default is 'nil')
|
||||
NSZone *next;
|
||||
};
|
||||
|
||||
|
||||
|
||||
static gs_mutex_t zoneLock = GS_MUTEX_INIT_STATIC;
|
||||
|
||||
/**
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue