aboutsummaryrefslogtreecommitdiff
path: root/libcrystfel/src/reflist.c
diff options
context:
space:
mode:
Diffstat (limited to 'libcrystfel/src/reflist.c')
-rw-r--r--libcrystfel/src/reflist.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/libcrystfel/src/reflist.c b/libcrystfel/src/reflist.c
index 9ad41c5e..7a66bf9f 100644
--- a/libcrystfel/src/reflist.c
+++ b/libcrystfel/src/reflist.c
@@ -1180,8 +1180,7 @@ const Reflection *next_refl_const(const Reflection *refl, RefListIterator *iter)
}
if ( iter->stack_ptr == 0 ) {
- free(iter->stack_const);
- free(iter);
+ free_reflistiterator(iter);
return NULL;
}
@@ -1190,6 +1189,20 @@ const Reflection *next_refl_const(const Reflection *refl, RefListIterator *iter)
} while ( 1 );
}
+
+void free_reflistiterator(RefListIterator *iter)
+{
+ if ( iter != NULL ) {
+ if ( iter->is_const ) {
+ cffree(iter->stack_const);
+ } else {
+ cffree(iter->stack);
+ }
+ cffree(iter);
+ }
+}
+
+
/*********************************** Voodoo ***********************************/
static int recursive_depth(Reflection *refl)