diff options
Diffstat (limited to 'src/lib/libc/stdlib/malloc.c')
| -rw-r--r-- | src/lib/libc/stdlib/malloc.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/lib/libc/stdlib/malloc.c b/src/lib/libc/stdlib/malloc.c index 6f646934b2..92efd7d68b 100644 --- a/src/lib/libc/stdlib/malloc.c +++ b/src/lib/libc/stdlib/malloc.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: malloc.c,v 1.142 2012/06/18 17:03:51 matthew Exp $ */ | 1 | /* $OpenBSD: malloc.c,v 1.143 2012/06/20 13:13:15 tedu Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2008 Otto Moerbeek <otto@drijf.net> | 3 | * Copyright (c) 2008 Otto Moerbeek <otto@drijf.net> |
| 4 | * | 4 | * |
| @@ -317,7 +317,7 @@ unmap(struct dir_info *d, void *p, size_t sz) | |||
| 317 | rsz = mopts.malloc_cache - d->free_regions_size; | 317 | rsz = mopts.malloc_cache - d->free_regions_size; |
| 318 | if (psz > rsz) | 318 | if (psz > rsz) |
| 319 | tounmap = psz - rsz; | 319 | tounmap = psz - rsz; |
| 320 | offset = getrnibble(); | 320 | offset = getrnibble() + getrnibble() << 4; |
| 321 | for (i = 0; tounmap > 0 && i < mopts.malloc_cache; i++) { | 321 | for (i = 0; tounmap > 0 && i < mopts.malloc_cache; i++) { |
| 322 | r = &d->free_regions[(i + offset) & (mopts.malloc_cache - 1)]; | 322 | r = &d->free_regions[(i + offset) & (mopts.malloc_cache - 1)]; |
| 323 | if (r->p != NULL) { | 323 | if (r->p != NULL) { |
| @@ -337,7 +337,7 @@ unmap(struct dir_info *d, void *p, size_t sz) | |||
| 337 | if (tounmap > 0) | 337 | if (tounmap > 0) |
| 338 | wrterror("malloc cache underflow", NULL); | 338 | wrterror("malloc cache underflow", NULL); |
| 339 | for (i = 0; i < mopts.malloc_cache; i++) { | 339 | for (i = 0; i < mopts.malloc_cache; i++) { |
| 340 | r = &d->free_regions[i]; | 340 | r = &d->free_regions[(i + offset) & (mopts.malloc_cache - 1)]; |
| 341 | if (r->p == NULL) { | 341 | if (r->p == NULL) { |
| 342 | if (mopts.malloc_hint) | 342 | if (mopts.malloc_hint) |
| 343 | madvise(p, sz, MADV_FREE); | 343 | madvise(p, sz, MADV_FREE); |
| @@ -398,7 +398,7 @@ map(struct dir_info *d, size_t sz, int zero_fill) | |||
| 398 | /* zero fill not needed */ | 398 | /* zero fill not needed */ |
| 399 | return p; | 399 | return p; |
| 400 | } | 400 | } |
| 401 | offset = getrnibble(); | 401 | offset = getrnibble() + getrnibble() << 4; |
| 402 | for (i = 0; i < mopts.malloc_cache; i++) { | 402 | for (i = 0; i < mopts.malloc_cache; i++) { |
| 403 | r = &d->free_regions[(i + offset) & (mopts.malloc_cache - 1)]; | 403 | r = &d->free_regions[(i + offset) & (mopts.malloc_cache - 1)]; |
| 404 | if (r->p != NULL) { | 404 | if (r->p != NULL) { |
