diff options
Diffstat (limited to 'libcrystfel/src/reflist.c')
-rw-r--r-- | libcrystfel/src/reflist.c | 17 |
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) |