diff options
author | Tim Peters <tim.peters@gmail.com> | 2006-03-02 21:41:18 +0000 |
---|---|---|
committer | Tim Peters <tim.peters@gmail.com> | 2006-03-02 21:41:18 +0000 |
commit | e4ec11241b3ca6e66b6fc0693de572a86b047ffd (patch) | |
tree | 25bf0478ef745d736ee6b60114536ee9cc188a69 | |
parent | 187fcdd7887dde2730583ca696c41d9ae309ee70 (diff) | |
download | cpython-e4ec11241b3ca6e66b6fc0693de572a86b047ffd.tar.gz |
Document the purpose of the struct _block members.
-rw-r--r-- | Python/pyarena.c | 19 |
1 files changed, 18 insertions, 1 deletions
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; |