ALLEGRO_CONFIG * merge_config (const ALLEGRO_CONFIG *cfg1, const ALLEGRO_CONFIG *cfg2) { ALLEGRO_CONFIG *config = al_merge_config (cfg1, cfg2); if (! config) error (0, 0, "%s (%p, %p): failed to merge configurations", __func__, cfg1, cfg2); return config; }
static mrb_value config_merge(mrb_state *mrb, mrb_value self) { ALLEGRO_CONFIG *cfg1; mrb_value o; ALLEGRO_CONFIG *cfg2; ALLEGRO_CONFIG *cfg_new; struct RData *data; Check_Destroyed(mrb, self, config, cfg1); mrb_get_args(mrb, "o", &o); Check_Destroyed(mrb, o, config, cfg2); cfg_new = al_merge_config(cfg1, cfg2); data = mrb_data_object_alloc(mrb, mrb_obj_class(mrb, self), cfg_new, &mrbal_config_data_type); return mrb_obj_value(data); }