Lines Matching full:cp
191 struct heap_node* cp = ((struct heap_node*)ptr) - 1; // retrieve the chunk
197 std::printf("Freeing item at %d of size %d\n", offset_from_node(cp), cp->len);
203 std::printf(" p=%d, cp=%d, after(p)=%d, after(cp)=%d\n",
204 offset_from_node(p), offset_from_node(cp),
205 offset_from_node(after(p)), offset_from_node(after(cp)));
207 if (after(p) == cp) {
212 p->len + cp->len); // make the free heap_node larger
214 } else if (after(cp) == p) { // there's a free heap_node right after
218 cp->len = static_cast<heap_size>(cp->len + p->len);
220 freelist = cp;
221 cp->next_node = p->next_node;
223 prev->next_node = offset_from_node(cp);
229 std::printf(" Making new free list entry %d\n", offset_from_node(cp));
231 cp->next_node = offset_from_node(freelist);
232 freelist = cp;