disp_t * disp_table_copy (const disp_t *src) { disp_t *res = disp_base_copy (src); data_table_ref (res->disp.table.table_ref); return res; }
disp_t * disp_sample_table_copy (const disp_t *src) { disp_t *res = disp_base_copy (src); struct disp_sample_table *dt = &res->disp.sample_table; if (dt->nb > 0) data_table_ref (dt->table_ref); return res; }
disp_t * disp_sample_table_copy(const disp_t *src) { disp_t *res = disp_base_copy(src); struct disp_sample_table *dt = &res->disp.sample_table; if(dt->len > 0) { rc_matrix_ref(dt->table); init_interp(dt); prepare_interp(dt); } return res; }
disp_t * fb_copy(const disp_t *src) { struct disp_struct *res; struct disp_fb *fb; struct fb_osc *osc; res = disp_base_copy(src); fb = & res->disp.fb; osc = fb->osc; fb->osc = emalloc(sizeof(struct fb_osc) * fb->n); memcpy(fb->osc, osc, sizeof(struct fb_osc) * fb->n); return res; }