userdata.reset(new Userdata[num_queued_frames]);
for (size_t i = 0; i < num_queued_frames; ++i) {
init_frame(i, frame_size, width, height, permissions, map_bits, generation);
userdata.reset(new Userdata[num_queued_frames]);
for (size_t i = 0; i < num_queued_frames; ++i) {
init_frame(i, frame_size, width, height, permissions, map_bits, generation);