diff options
author | Ilya Zakharevich <ilya@math.berkeley.edu> | 1998-06-22 00:19:45 -0400 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 1998-06-23 06:06:23 +0000 |
commit | 8d6dde3e637be6ce74eec8ca77c5be73d19f769a (patch) | |
tree | eb37e8ea49be3485b48a74821f527ac1fde1a018 /malloc.c | |
parent | 276493cb78ba879defeed992c4543a6fe30f98ce (diff) | |
download | perl-8d6dde3e637be6ce74eec8ca77c5be73d19f769a.tar.gz |
applied patch, regen headers
Message-Id: <199806220819.EAA03295@monk.mps.ohio-state.edu>
Subject: [PATCH 5.004_67] Malloc size feedback
p4raw-id: //depot/perl@1201
Diffstat (limited to 'malloc.c')
-rw-r--r-- | malloc.c | 14 |
1 files changed, 12 insertions, 2 deletions
@@ -1430,8 +1430,18 @@ calloc(register size_t elements, register size_t size) MEM_SIZE malloced_size(void *p) { - int bucket = OV_INDEX((union overhead *)p); - + union overhead *ovp = (union overhead *) + ((caddr_t)p - sizeof (union overhead) * CHUNK_SHIFT); + int bucket = OV_INDEX(ovp); +#ifdef RCHECK + /* The caller wants to have a complete control over the chunk, + disable the memory checking inside the chunk. */ + if (bucket <= MAX_SHORT_BUCKET) { + MEM_SIZE size = BUCKET_SIZE_REAL(bucket); + ovp->ov_size = size + M_OVERHEAD - 1; + *((u_int *)((caddr_t)ovp + size + M_OVERHEAD - RSLOP)) = RMAGIC; + } +#endif return BUCKET_SIZE_REAL(bucket); } |