]> git.donarmstrong.com Git - samtools.git/blobdiff - sam_header.c
Improved efficiency of header parsing
[samtools.git] / sam_header.c
index 3879f3fc2a80fbd65ffd1dcb8c6858b280707378..238c5cbda847c07a16548f51d72986075cbba185 100644 (file)
@@ -58,6 +58,14 @@ static void debug(const char *format, ...)
     va_end(ap);
 }
 
+static list_t *list_prepend(list_t *root, void *data)
+{
+    list_t *l = malloc(sizeof(list_t));
+    l->next = root;
+    l->data = data;
+    return l;
+}
+
 static list_t *list_append(list_t *root, void *data)
 {
     list_t *l = root;
@@ -543,7 +551,7 @@ void *sam_header_parse2(const char *headerText)
     {
         hline = sam_header_line_parse(buf);
         if ( hline && sam_header_line_validate(hline) )
-            hlines = list_append(hlines, hline);
+            hlines = list_prepend(hlines, hline);
         else
         {
                        if (hline) sam_header_line_free(hline);