116void *rdesc_stack_multipush(
struct rdesc_stack **s,
void *element,
size_t count)
119 if (stack_reserve(s, count) || (xmultipush(count)))
122 void *top = elem_at(*s, (*s)->
len);
125 memcpy(top, element, (*s)->element_size * count);
138 runtime_assertion((*s)->len >= count,
"stack underflow");
140 size_t decreased_cap = (*s)->cap;
142 while ((*s)->len * 4 <= decreased_cap &&
143 decreased_cap >= STACK_INITIAL_CAP * 2)
148 if (decreased_cap != (*s)->cap)
149 resize_stack(s, decreased_cap);
151 return elem_at(*s, (*s)->
len);