| 205 | ----------------------------------------------------------- */ |
| 206 | |
| 207 | static void mi_span_queue_push(mi_span_queue_t* sq, mi_slice_t* slice) { |
| 208 | // todo: or push to the end? |
| 209 | mi_assert_internal(slice->prev == NULL && slice->next==NULL); |
| 210 | slice->prev = NULL; // paranoia |
| 211 | slice->next = sq->first; |
| 212 | sq->first = slice; |
| 213 | if (slice->next != NULL) slice->next->prev = slice; |
| 214 | else sq->last = slice; |
| 215 | slice->xblock_size = 0; // free |
| 216 | } |
| 217 | |
| 218 | static mi_span_queue_t* mi_span_queue_for(size_t slice_count, mi_segments_tld_t* tld) { |
| 219 | size_t bin = mi_slice_bin(slice_count); |
no outgoing calls
no test coverage detected