Lines Matching defs:layout

410     void *Zone::allocate_large(Thread &thread, usword_t &size, const usword_t layout, bool clear, bool refcount_is_one) {
411 Large *large = Large::allocate(this, size, layout, refcount_is_one);
442 if (clear || !(layout & AUTO_UNSCANNED)) {
561 // Allocate a block of memory from the zone. layout indicates whether the block is an
564 void *Zone::block_allocate(Thread &thread, const size_t size, const usword_t layout, bool clear, bool refcount_is_one) {
573 Admin &admin = _partition.admin(allocated_size, layout, refcount_is_one);
586 block = admin.thread_cache_allocate(thread, allocated_size, layout, refcount_is_one, is_local);
590 block = admin.find_allocation(thread, allocated_size, layout, refcount_is_one, is_local);
605 block = allocate_large(thread, allocated_size, layout, clear, refcount_is_one);
632 unsigned Zone::batch_allocate(Thread &thread, size_t size, const usword_t layout, bool clear, bool refcount_is_one, void **results, unsigned num_requested) {
640 Admin &admin = _partition.admin(allocated_size, layout, refcount_is_one);
641 count = admin.batch_allocate(thread, allocated_size, layout, refcount_is_one, clear, results, num_requested);
686 int layout = subzone->layout(q);
687 if (layout & AUTO_OBJECT)
693 if (((layout & AUTO_UNSCANNED) == AUTO_UNSCANNED) && !_enlivening_enabled) {
710 int layout = large->layout();
711 if (layout & AUTO_OBJECT)
773 // Return the layout of a specified block.
780 return subzone->layout(q);
783 return large->layout();
793 // Set the layout of a block.
796 void Zone::block_set_layout(void *block, const usword_t layout) {
802 subzone->set_layout(q, layout);
805 large->set_layout(layout);
1464 void Zone::handle_overretained_garbage(void *block, int rc, auto_memory_type_t layout) {
1466 if (is_object(layout)) {
1482 if (is_object(layout) && control.name_for_address) free(name);
1508 if ((subzone->layout(q) & AUTO_OBJECT)) erase_weak(block);
1531 if (large->layout() & AUTO_OBJECT) erase_weak(block);