diff options
author | Thomas White <taw@physics.org> | 2017-09-16 06:09:08 +0200 |
---|---|---|
committer | Thomas White <taw@physics.org> | 2017-09-16 06:09:08 +0200 |
commit | d09377870075ab13fab272d10f33be30309f2c72 (patch) | |
tree | 47ded7cc3dae8ec7cc34b676f5b197f0bc3f2895 | |
parent | 5ca956f67456831501cf413259790eec6d6c6c1f (diff) |
Fix return of unit cells from asdf and dirax
-rw-r--r-- | libcrystfel/src/asdf.c | 32 | ||||
-rw-r--r-- | libcrystfel/src/dirax.c | 34 |
2 files changed, 21 insertions, 45 deletions
diff --git a/libcrystfel/src/asdf.c b/libcrystfel/src/asdf.c index bbfd1a56..6fee6952 100644 --- a/libcrystfel/src/asdf.c +++ b/libcrystfel/src/asdf.c @@ -269,23 +269,6 @@ static int calc_reciprocal(gsl_vector **direct, gsl_vector **reciprocal) } -static int check_cell(struct asdf_private *dp, struct image *image, - UnitCell *cell) -{ - Crystal *cr; - - cr = crystal_new(); - if ( cr == NULL ) { - ERROR("Failed to allocate crystal.\n"); - return 0; - } - crystal_set_cell(cr, cell); - image_add_crystal(image, cr); - - return 1; -} - - static int compare_doubles(const void *a, const void *b) { const double *da = (const double *) a; @@ -1150,7 +1133,9 @@ int run_asdf(struct image *image, void *ipriv) } if ( j ) { + UnitCell *uc; + Crystal *cr; uc = cell_new(); cell_set_cartesian(uc, gsl_vector_get(c->axes[0], 0) * 1e-10, @@ -1163,13 +1148,16 @@ int run_asdf(struct image *image, void *ipriv) gsl_vector_get(c->axes[2], 1) * 1e-10, gsl_vector_get(c->axes[2], 2) * 1e-10); - if ( check_cell(dp, image, uc) ) { - asdf_cell_free(c); - cell_free(uc); - return 1; + cr = crystal_new(); + if ( cr == NULL ) { + ERROR("Failed to allocate crystal.\n"); + return 0; } + crystal_set_cell(cr, uc); + image_add_crystal(image, cr); + asdf_cell_free(c); + return 1; - cell_free(uc); } asdf_cell_free(c); diff --git a/libcrystfel/src/dirax.c b/libcrystfel/src/dirax.c index 29b735ad..ecf8a4fd 100644 --- a/libcrystfel/src/dirax.c +++ b/libcrystfel/src/dirax.c @@ -105,23 +105,6 @@ struct dirax_data { }; -static int check_cell(struct dirax_private *dp, struct image *image, - UnitCell *cell) -{ - Crystal *cr; - - cr = crystal_new(); - if ( cr == NULL ) { - ERROR("Failed to allocate crystal.\n"); - return 0; - } - crystal_set_cell(cr, cell); - image_add_crystal(image, cr); - - return 1; -} - - static void dirax_parseline(const char *line, struct image *image, struct dirax_data *dirax) { @@ -199,6 +182,7 @@ static void dirax_parseline(const char *line, struct image *image, /* Third row of unit cell values */ int r; UnitCell *cell; + Crystal *cr; r = sscanf(line, "%f %f %f %f %f %f", &d, &d, &d, &dirax->cx, &dirax->cy, &dirax->cz); @@ -218,13 +202,17 @@ static void dirax_parseline(const char *line, struct image *image, dirax->bx, dirax->by, dirax->bz, dirax->cx, dirax->cy, dirax->cz); - /* Finished reading a cell. Time to check it... */ - if ( check_cell(dirax->dp, image, cell) ) { - dirax->done = 1; - dirax->success = 1; - } + /* Finished reading a cell. */ - cell_free(cell); + cr = crystal_new(); + if ( cr == NULL ) { + ERROR("Failed to allocate crystal.\n"); + return; + } + crystal_set_cell(cr, cell); + image_add_crystal(image, cr); + dirax->done = 1; + dirax->success = 1; return; |