Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 171580
Collapse All | Expand All

(-)src/libmowgli/mowgli_heap.c.orig (-6 / +6 lines)
Lines 53-66 Link Here
53
	int a;
53
	int a;
54
	
54
	
55
#if defined(HAVE_MMAP) && defined(MAP_ANON)
55
#if defined(HAVE_MMAP) && defined(MAP_ANON)
56
	blp = mmap(NULL, sizeof(mowgli_heap_t) + (bh->alloc_size * bh->mowgli_heap_elems),
56
	blp = mmap(NULL, sizeof(mowgli_block_t) + (bh->alloc_size * bh->mowgli_heap_elems),
57
		PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0);
57
		PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0);
58
#else
58
#else
59
	blp = mowgli_alloc(sizeof(mowgli_heap_t) + (bh->alloc_size * bh->mowgli_heap_elems));
59
	blp = mowgli_alloc(sizeof(mowgli_block_t) + (bh->alloc_size * bh->mowgli_heap_elems));
60
#endif
60
#endif
61
	block = (mowgli_block_t *)blp;
61
	block = (mowgli_block_t *)blp;
62
	
62
	
63
	offset = blp + sizeof(mowgli_heap_t);
63
	offset = blp + sizeof(mowgli_block_t);
64
	block->data = offset;
64
	block->data = offset;
65
	block->heap = bh;
65
	block->heap = bh;
66
66
Lines 93-99 Link Here
93
	mowgli_node_delete(&b->node, &heap->blocks);
93
	mowgli_node_delete(&b->node, &heap->blocks);
94
94
95
#ifdef HAVE_MMAP
95
#ifdef HAVE_MMAP
96
	munmap(b, sizeof(mowgli_heap_t) + (heap->alloc_size * heap->mowgli_heap_elems));
96
	munmap(b, sizeof(mowgli_block_t) + (heap->alloc_size * heap->mowgli_heap_elems));
97
#else
97
#else
98
	mowgli_free(b);
98
	mowgli_free(b);
99
#endif
99
#endif
Lines 140-146 Link Here
140
{
140
{
141
	mowgli_node_t *n, *fn;
141
	mowgli_node_t *n, *fn;
142
	mowgli_block_t *b;
142
	mowgli_block_t *b;
143
	
143
144
	/* no free space? */
144
	/* no free space? */
145
	if (heap->free_elems == 0)
145
	if (heap->free_elems == 0)
146
	{
146
	{
Lines 196-202 Link Here
196
		{
196
		{
197
			/* mark it as free */
197
			/* mark it as free */
198
			mowgli_node_move(dn, &b->used_list, &b->free_list);
198
			mowgli_node_move(dn, &b->used_list, &b->free_list);
199
			
199
200
			/* keep count */
200
			/* keep count */
201
			heap->free_elems++;
201
			heap->free_elems++;
202
#ifdef HEAP_DEBUG
202
#ifdef HEAP_DEBUG

Return to bug 171580