diff options
author | Bart Schaefer <barts@users.sourceforge.net> | 2006-03-06 15:38:59 +0000 |
---|---|---|
committer | Bart Schaefer <barts@users.sourceforge.net> | 2006-03-06 15:38:59 +0000 |
commit | 20aae107b8e662a1a484eb7b22fe3155a3a92c7b (patch) | |
tree | 947658cc5bff668b16306b805faa9f48e8488bb3 /Src/mem.c | |
parent | e43a5fc8ea0725501c6d743df4432cd8879d943b (diff) | |
download | zsh-20aae107b8e662a1a484eb7b22fe3155a3a92c7b.tar.gz zsh-20aae107b8e662a1a484eb7b22fe3155a3a92c7b.tar.xz zsh-20aae107b8e662a1a484eb7b22fe3155a3a92c7b.zip |
22321: optimize 22318.
Diffstat (limited to 'Src/mem.c')
-rw-r--r-- | Src/mem.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/Src/mem.c b/Src/mem.c index 499f7d7e4..bcdd1efe9 100644 --- a/Src/mem.c +++ b/Src/mem.c @@ -329,6 +329,21 @@ mmap_heap_alloc(size_t *n) } #endif +/* check whether a pointer is within a memory pool */ + +/**/ +mod_export void * +zheapptr(void *p) +{ + Heap h; + queue_signals(); + for (h = heaps; h; h = h->next) + if ((char *)p >= arena(h) && + (char *)p + H_ISIZE < arena(h) + ARENA_SIZEOF(h)) + break; + unqueue_signals(); + return (h ? p : 0); +} /* allocate memory from the current memory pool */ |