From e4ec11241b3ca6e66b6fc0693de572a86b047ffd Mon Sep 17 00:00:00 2001 From: Tim Peters Date: Thu, 2 Mar 2006 21:41:18 +0000 Subject: Document the purpose of the struct _block members. --- Python/pyarena.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/Python/pyarena.c b/Python/pyarena.c index 33261b4314..242ca1d67d 100644 --- a/Python/pyarena.c +++ b/Python/pyarena.c @@ -1,7 +1,7 @@ #include "Python.h" #include "pyarena.h" -/* A simple arena block structure +/* A simple arena block structure. Measurements with standard library modules suggest the average allocation is about 20 bytes and that most compiles use a single @@ -10,9 +10,26 @@ #define DEFAULT_BLOCK_SIZE 8192 typedef struct _block { + /* Total number of bytes owned by this block available to pass out. + * Read-only after initialization. The first such byte starts at + * ab_mem. + */ size_t ab_size; + + /* Total number of bytes already passed out. The next byte available + * to pass out starts at ab_mem + ab_offset. + */ size_t ab_offset; + + /* An arena maintains a singly-linked, NULL-terminated list of + * all blocks owned by the arena. These are linked via the + * ab_next member. + */ struct _block *ab_next; + + /* Pointer to the first allocatable byte owned by this block. Read- + * only after initialization. + */ void *ab_mem; } block; -- cgit v1.2.1