project_files/frontlib/model/cfg.c
changeset 7271 5608ac657362
parent 7230 240620f46dd7
child 7275 15f722e0b96f
equal deleted inserted replaced
7269:5b0aeef8ba2a 7271:5608ac657362
    32 static void flib_cfg_destroy(flib_cfg* cfg) {
    32 static void flib_cfg_destroy(flib_cfg* cfg) {
    33 	if(cfg) {
    33 	if(cfg) {
    34 		flib_cfg_meta_release(cfg->meta);
    34 		flib_cfg_meta_release(cfg->meta);
    35 		free(cfg->mods);
    35 		free(cfg->mods);
    36 		free(cfg->settings);
    36 		free(cfg->settings);
    37 		free(cfg->schemeName);
    37 		free(cfg->name);
    38 		free(cfg);
    38 		free(cfg);
    39 	}
    39 	}
    40 }
    40 }
    41 
    41 
    42 static flib_cfg_meta *flib_cfg_meta_from_ini_handleError(flib_cfg_meta *result, flib_ini *ini) {
    42 static flib_cfg_meta *flib_cfg_meta_from_ini_handleError(flib_cfg_meta *result, flib_ini *ini) {
   153 		flib_log_e("null parameter in flib_cfg_create");
   153 		flib_log_e("null parameter in flib_cfg_create");
   154 		return NULL;
   154 		return NULL;
   155 	}
   155 	}
   156 
   156 
   157 	result->meta = flib_cfg_meta_retain(meta);
   157 	result->meta = flib_cfg_meta_retain(meta);
   158 	result->schemeName = flib_strdupnull(schemeName);
   158 	result->name = flib_strdupnull(schemeName);
   159 	result->mods = flib_calloc(meta->modCount, sizeof(*result->mods));
   159 	result->mods = flib_calloc(meta->modCount, sizeof(*result->mods));
   160 	result->settings = flib_calloc(meta->settingCount, sizeof(*result->settings));
   160 	result->settings = flib_calloc(meta->settingCount, sizeof(*result->settings));
   161 
   161 
   162 	if(!result->mods || !result->settings || !result->schemeName) {
   162 	if(!result->mods || !result->settings || !result->name) {
   163 		flib_cfg_destroy(result);
   163 		flib_cfg_destroy(result);
   164 		return NULL;
   164 		return NULL;
   165 	}
   165 	}
   166 
   166 
   167 	for(int i=0; i<meta->settingCount; i++) {
   167 	for(int i=0; i<meta->settingCount; i++) {
   171 }
   171 }
   172 
   172 
   173 flib_cfg *flib_cfg_copy(flib_cfg *cfg) {
   173 flib_cfg *flib_cfg_copy(flib_cfg *cfg) {
   174 	flib_cfg *result = NULL;
   174 	flib_cfg *result = NULL;
   175 	if(cfg) {
   175 	if(cfg) {
   176 		result = flib_cfg_create(cfg->meta, cfg->schemeName);
   176 		result = flib_cfg_create(cfg->meta, cfg->name);
   177 		if(result) {
   177 		if(result) {
   178 			memcpy(result->mods, cfg->mods, cfg->meta->modCount * sizeof(*cfg->mods));
   178 			memcpy(result->mods, cfg->mods, cfg->meta->modCount * sizeof(*cfg->mods));
   179 			memcpy(result->settings, cfg->settings, cfg->meta->settingCount * sizeof(*cfg->settings));
   179 			memcpy(result->settings, cfg->settings, cfg->meta->settingCount * sizeof(*cfg->settings));
   180 		}
   180 		}
   181 	}
   181 	}