Lines Matching defs:bin

1883     An array of bin headers for free chunks. Each bin is doubly
1907 To simplify use in double-linked lists, each bin header acts
1924 /* analog of ++bin */
1935 Take a chunk off a bin list
1957 1 bin of size what's left
1992 are first placed in the "unsorted" bin. They are then placed
2001 /* The otherwise unindexable 1-bin is used to hold unsorted chunks. */
2011 any bin, is used only if no other chunk is available, and is
2013 M_TRIM_THRESHOLD). `top' is never properly linked to its bin
2015 points to its own bin with initial zero size, thus forcing
2019 initial_top treat the bin as a legal but unusable chunk during the
2026 /* Conveniently, the unsorted bin can be used as dummy top on first call */
2033 structure is used for bin-by-bin searching. `binmap' is a
2131 /* Base of the topmost chunk -- not otherwise kept in a bin */
2213 mbinptr bin;
2221 bin = bin_at(av,i);
2222 bin->fd = bin->bk = bin;
2535 /* chunk belongs in this bin */
2548 /* binmap is accurate (except for bin 1 == unsorted_chunks) */
2564 /* chunk belongs in bin */
3081 unsigned int idx; /* associated bin index */
3082 mbinptr bin; /* associated bin */
3087 int victim_index; /* its bin index */
3113 If the size qualifies as a fastbin, first check corresponding bin.
3128 If a small request, check regular bin. Since these "smallbins"
3138 bin = bin_at(av,idx);
3140 if ( (victim = last(bin)) != bin) {
3146 bin->bk = bck;
3147 bck->fd = bin;
3194 only chunk in unsorted bin. This helps promote locality for
3230 /* place chunk in bin */
3268 If a large request, scan through the chunks of current bin in
3276 bin = bin_at(av, idx);
3279 if ((victim = last(bin)) != bin &&
3280 (long)(chunksize(first(bin))) - (long)(nb) >= 0) {
3306 } while ( (victim = victim->bk) != bin);
3312 bin. This search is strictly by best-fit; i.e., the smallest
3322 bin = bin_at(av,idx);
3338 bin = bin_at(av, (block << BINMAPSHIFT));
3348 /* Advance to bin with set bit. There must be one. */
3350 bin = next_bin(bin);
3354 victim = last(bin);
3356 /* False alarm -- the bin is empty. Clear the bit. */
3357 if (victim == bin) {
3359 bin = next_bin(bin);
3363 /* We know the first chunk in this bin is big enough to use. */
3372 bin->bk = bck;
3373 bck->fd = bin;
3438 idx = smallbin_index(nb); /* restore original bin index */
3662 Remove each chunk from fast bin and consolidate it, placing it
3663 then in unsorted bin. Among other reasons for doing this,
3664 placing in unsorted bin avoids needing to calculate actual bins
5114 * malloc: swap order of clean-bin strategy;
5117 * Use bin counts as a guide to preallocation
5118 * Occasionally bin return list chunks in first scan
5122 * faster bin computation & slightly different binning