diff --git a/gstlal-burst/gst/lal/gstlal_string_triggergen.c b/gstlal-burst/gst/lal/gstlal_string_triggergen.c index 206caaeba779918f458a9998b4acb6b94994a50a..5640403a25cec39fe39dc528d3bfce6a6d023783 100644 --- a/gstlal-burst/gst/lal/gstlal_string_triggergen.c +++ b/gstlal-burst/gst/lal/gstlal_string_triggergen.c @@ -41,8 +41,6 @@ #include <lal/Date.h> #include <lal/LIGOMetadataTables.h> -#include <lal/LIGOLwXMLBurstRead.h> -#include <lal/SnglBurstUtils.h> /* @@ -56,6 +54,8 @@ #include <gstlal/gstlal_autocorrelation_chi2.h> #include <gstlal/gstlal_debug.h> #include <gstlal/gstlal_peakfinder.h> +#include <gstlal-burst/gstlal_snglburst.h> + /* @@ -125,7 +125,7 @@ static void free_bankfile(GSTLALStringTriggergen *element) { g_free(element->bank_filename); element->bank_filename = NULL; - free(element->bank); + gstlal_snglburst_array_free(element->bank); element->bank = NULL; element->num_templates = 0; free(element->last_time); @@ -135,32 +135,18 @@ static void free_bankfile(GSTLALStringTriggergen *element) static int setup_bankfile_input(GSTLALStringTriggergen *element, char *bank_filename) { - SnglBurst *bank = NULL; - int i; - free_bankfile(element); element->bank_filename = bank_filename; - bank = XLALSnglBurstTableFromLIGOLw(element->bank_filename); - element->num_templates = XLALSnglBurstTableLength(bank); - element->bank = calloc(element->num_templates, sizeof(*element->bank)); - element->last_time = calloc(element->num_templates, sizeof(*element->last_time)); - if(!bank || !element->bank || !element->last_time) { - XLALDestroySnglBurstTable(bank); - free(element->bank); - element->bank = NULL; - free(element->last_time); - element->last_time = NULL; + element->num_templates = gstlal_snglburst_array_from_file(element->bank_filename, &element->bank); + if(element->num_templates < 0) { + free_bankfile(element); return -1; } - - for(i=0; bank; i++) { - SnglBurst *next = bank->next; - g_assert(i < element->num_templates); - element->bank[i] = *bank; - element->bank[i].next = NULL; - free(bank); - bank = next; + element->last_time = calloc(element->num_templates, sizeof(*element->last_time)); + if(!element->last_time) { + free_bankfile(element); + return -1; } return element->num_templates;