Changeset: a53f4d178d47 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a53f4d178d47
Modified Files:
        common/stream/stream.c
Branch: Aug2018
Log Message:

When closing a stream, first flush.
This fixes bug 6662.


diffs (52 lines):

diff --git a/common/stream/stream.c b/common/stream/stream.c
--- a/common/stream/stream.c
+++ b/common/stream/stream.c
@@ -1019,14 +1019,6 @@ stream_gzwrite(stream *restrict s, const
        return size == 0 ? -1 : (ssize_t) size;
 }
 
-static void
-stream_gzclose(stream *s)
-{
-       if (s->stream_data.p)
-               gzclose((gzFile) s->stream_data.p);
-       s->stream_data.p = NULL;
-}
-
 static int
 stream_gzflush(stream *s)
 {
@@ -1038,6 +1030,15 @@ stream_gzflush(stream *s)
        return 0;
 }
 
+static void
+stream_gzclose(stream *s)
+{
+       stream_gzflush(s);
+       if (s->stream_data.p)
+               gzclose((gzFile) s->stream_data.p);
+       s->stream_data.p = NULL;
+}
+
 static stream *
 open_gzstream(const char *restrict filename, const char *restrict flags)
 {
@@ -4088,6 +4089,8 @@ bs_close(stream *ss)
        assert(s);
        if (s == NULL)
                return;
+       if (ss->access == ST_WRITE && s->nr > 0)
+               bs_flush(ss);
        if (s->s)
                s->s->close(s->s);
 }
@@ -4752,6 +4755,8 @@ bs2_close(stream *ss)
        assert(s);
        if (s == NULL)
                return;
+       if (ss->access == ST_WRITE && s->nr > 0)
+               bs2_flush(ss);
        assert(s->s);
        if (s->s)
                s->s->close(s->s);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to