diff options
Diffstat (limited to 'libcrystfel/src/image.c')
-rw-r--r-- | libcrystfel/src/image.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/libcrystfel/src/image.c b/libcrystfel/src/image.c index ab4518a9..e91c09d6 100644 --- a/libcrystfel/src/image.c +++ b/libcrystfel/src/image.c @@ -333,6 +333,8 @@ void image_add_crystal_refls(struct image *image, crs[n].cr = cryst; crs[n].refls = reflist; + crs[n].image_owns_crystal = 1; + crs[n].image_owns_refls = 1; image->crystals = crs; image->n_crystals = n+1; } @@ -373,8 +375,12 @@ void free_all_crystals(struct image *image) int i; if ( image->crystals == NULL ) return; for ( i=0; i<image->n_crystals; i++ ) { - crystal_free(image->crystals[i].cr); - reflist_free(image->crystals[i].refls); + if ( image->crystals[i].image_owns_crystal ) { + crystal_free(image->crystals[i].cr); + } + if ( image->crystals[i].image_owns_refls ) { + reflist_free(image->crystals[i].refls); + } } cffree(image->crystals); image->crystals = NULL; |