diff options
author | Thomas White <taw@physics.org> | 2021-05-17 11:27:35 +0200 |
---|---|---|
committer | Thomas White <taw@physics.org> | 2021-05-17 11:27:35 +0200 |
commit | 191c653da29f5bd51251256d056239a3628daf5d (patch) | |
tree | a64949424dc999038948a80ceb26c997876272f3 /src/gui_project.c | |
parent | 680fa5f16ed2ff8a70fcb44e9920721287047f55 (diff) |
GUI: Improve error handling for default_project
Diffstat (limited to 'src/gui_project.c')
-rw-r--r-- | src/gui_project.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/gui_project.c b/src/gui_project.c index 789f2219..f2efc71b 100644 --- a/src/gui_project.c +++ b/src/gui_project.c @@ -818,7 +818,10 @@ int load_project(struct crystfelproject *proj) fh = fopen("crystfel.project", "r"); if ( fh == NULL ) return 1; - default_project(proj); + if ( default_project(proj) ) { + ERROR("Failed to make default project when loading.\n"); + return 1; + } read_parameters(fh, proj); read_results(fh, proj); @@ -1085,7 +1088,7 @@ int save_project(struct crystfelproject *proj) } -void default_project(struct crystfelproject *proj) +int default_project(struct crystfelproject *proj) { proj->unsaved = 0; proj->geom_filename = NULL; @@ -1115,18 +1118,20 @@ void default_project(struct crystfelproject *proj) proj->ambi_backend_selected = 0; proj->n_backends = 0; proj->backends = malloc(2*sizeof(struct crystfel_backend)); - /* FIXME: Crappy error handling */ if ( proj->backends == NULL ) { ERROR("Couldn't allocate space for backends\n"); + return 1; } if ( make_local_backend(&proj->backends[proj->n_backends++]) ) { ERROR("Local backend setup failed\n"); + return 1; } #ifdef HAVE_SLURM if ( make_slurm_backend(&proj->backends[proj->n_backends++]) ) { ERROR("SLURM backend setup failed\n"); + return 1; } #endif @@ -1226,6 +1231,8 @@ void default_project(struct crystfelproject *proj) /* NB Export options are currently not saved (because I'm lazy) */ proj->export_res_min = INFINITY; /* Angstroms */ proj->export_res_max = 0.0; /* Angstroms */ + + return 0; } |