GT_INLINE void gt_sam_header_clear(gt_sam_headers* const sam_headers) { GT_SAM_HEADERS_CHECK(sam_headers); // Header if(sam_headers->header) { gt_sam_header_record_delete(sam_headers->header); sam_headers->header = NULL; } // Read group GT_VECTOR_ITERATE(sam_headers->read_group,record_h,nh,gt_sam_header_record*) { gt_sam_header_record_delete(*record_h); } gt_vector_clear(sam_headers->read_group); if(sam_headers->read_group_id_hash) gt_shash_clear(sam_headers->read_group_id_hash,true); // Program GT_VECTOR_ITERATE(sam_headers->program,record_p,np,gt_sam_header_record*) { gt_sam_header_record_delete(*record_p); } gt_vector_clear(sam_headers->program); if(sam_headers->program_id_hash) gt_shash_clear(sam_headers->program_id_hash,true); // Seq Dictionary GT_VECTOR_ITERATE(sam_headers->sequence_dictionary,record_s,ns,gt_sam_header_record*) { gt_sam_header_record_delete(*record_s); } gt_vector_clear(sam_headers->sequence_dictionary); if(sam_headers->sequence_dictionary_sn_hash) gt_shash_clear(sam_headers->sequence_dictionary_sn_hash,true); // Comments GT_VECTOR_ITERATE(sam_headers->comments,comment,nc,gt_string*) { gt_string_delete(*comment); } gt_vector_clear(sam_headers->comments); }
GT_INLINE void gt_sam_attributes_clear(gt_sam_attributes* const sam_attributes) { GT_SAM_ATTRIBUTES_CHECK(sam_attributes); gt_shash_clear(sam_attributes,true); }