Lines Matching refs:newblock
101 struct mem_block *newblock;
103 /* break left [p, newblock, p->next], then p = newblock */
105 newblock = calloc(1, sizeof(struct mem_block));
106 if (!newblock)
108 newblock->ofs = startofs;
109 newblock->size = p->size - (startofs - p->ofs);
110 newblock->free = 1;
111 newblock->heap = p->heap;
113 newblock->next = p->next;
114 newblock->prev = p;
115 p->next->prev = newblock;
116 p->next = newblock;
118 newblock->next_free = p->next_free;
119 newblock->prev_free = p;
120 p->next_free->prev_free = newblock;
121 p->next_free = newblock;
123 p->size -= newblock->size;
124 p = newblock;
127 /* break right, also [p, newblock, p->next] */
129 newblock = calloc(1, sizeof(struct mem_block));
130 if (!newblock)
132 newblock->ofs = startofs + size;
133 newblock->size = p->size - size;
134 newblock->free = 1;
135 newblock->heap = p->heap;
137 newblock->next = p->next;
138 newblock->prev = p;
139 p->next->prev = newblock;
140 p->next = newblock;
142 newblock->next_free = p->next_free;
143 newblock->prev_free = p;
144 p->next_free->prev_free = newblock;
145 p->next_free = newblock;