diff options
Diffstat (limited to 'gr-blocks/lib/file_meta_sink_impl.cc')
-rw-r--r-- | gr-blocks/lib/file_meta_sink_impl.cc | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/gr-blocks/lib/file_meta_sink_impl.cc b/gr-blocks/lib/file_meta_sink_impl.cc index 027d12faf2..b6d858489d 100644 --- a/gr-blocks/lib/file_meta_sink_impl.cc +++ b/gr-blocks/lib/file_meta_sink_impl.cc @@ -141,17 +141,7 @@ namespace gr { { close(); - if(d_fp) { - fclose(d_fp); - d_fp = 0; - } - if(d_state == STATE_DETACHED) { - if(d_hdr_fp) { - fclose(d_hdr_fp); - d_hdr_fp = 0; - } - } } bool @@ -216,6 +206,18 @@ namespace gr { d_new_fp = 0; } d_updated = true; + + if (d_fp) { + fclose(d_fp); + d_fp = 0; + } + + if (d_state == STATE_DETACHED) { + if (d_hdr_fp) { + fclose(d_hdr_fp); + d_hdr_fp = 0; + } + } } void @@ -298,10 +300,11 @@ namespace gr { void file_meta_sink_impl::update_last_header() { - if(d_state == STATE_DETACHED) - update_last_header_detached(); - else - update_last_header_inline(); + if(d_state == STATE_DETACHED) { + if (d_hdr_fp) update_last_header_detached(); + } else { + if(d_fp) update_last_header_inline(); + } } void |