MCPcopy Create free account
hub / github.com/RT-Thread/rt-thread / _trace_free

Function _trace_free

components/mm/mm_page.c:198–231  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

196}
197
198static void _trace_free(rt_page_t page, void *caller, size_t size_bits)
199{
200 if (enable)
201 {
202 /* free after free */
203 if (page->trace_size == 0xabadcafe)
204 {
205 _report(page, size_bits, "free after free");
206 return ;
207 }
208 else if (page->trace_size != size_bits)
209 {
210 rt_kprintf("free with size bits %lx\n", size_bits);
211 _report(page, size_bits, "incompatible size bits parameter");
212 return ;
213 }
214
215 if (page->ref_cnt == 0)
216 {
217 _alloc_cnt--;
218 if (page->tl_prev)
219 page->tl_prev->tl_next = page->tl_next;
220 if (page->tl_next)
221 page->tl_next->tl_prev = page->tl_prev;
222
223 if (page == _trace_head)
224 _trace_head = page->tl_next;
225
226 page->tl_prev = NULL;
227 page->tl_next = NULL;
228 page->trace_size = 0xabadcafe;
229 }
230 }
231}
232#else
233#define TRACE_ALLOC(x, y)
234#define TRACE_FREE(x, y)

Callers

nothing calls this directly

Calls 2

_reportFunction · 0.85
rt_kprintfFunction · 0.85

Tested by

no test coverage detected