Author: eelco
Date: Fri Dec 16 15:45:42 2011
New Revision: 30936
URL: https://nixos.org/websvn/nix/?rev=30936&sc=1
Log:
* Clean up exception handling.
Modified:
nix/trunk/src/libutil/serialise.cc
nix/trunk/src/libutil/serialise.hh
Modified: nix/trunk/src/libutil/serialise.cc
==============================================================================
--- nix/trunk/src/libutil/serialise.cc Fri Dec 16 12:46:16 2011 (r30935)
+++ nix/trunk/src/libutil/serialise.cc Fri Dec 16 15:45:42 2011 (r30936)
@@ -41,8 +41,15 @@
void BufferedSink::flush()
{
if (bufPos == 0) return;
- write(buffer, bufPos);
- bufPos = 0;
+ size_t n = bufPos;
+ bufPos = 0; // don't trigger the assert() in ~BufferedSink()
+ write(buffer, n);
+}
+
+
+FdSink::~FdSink()
+{
+ try { flush(); } catch (...) { ignoreException(); }
}
Modified: nix/trunk/src/libutil/serialise.hh
==============================================================================
--- nix/trunk/src/libutil/serialise.hh Fri Dec 16 12:46:16 2011 (r30935)
+++ nix/trunk/src/libutil/serialise.hh Fri Dec 16 15:45:42 2011 (r30936)
@@ -71,7 +71,7 @@
FdSink() : fd(-1) { }
FdSink(int fd) : fd(fd) { }
- ~FdSink() { flush(); }
+ ~FdSink();
void write(const unsigned char * data, size_t len);
};
_______________________________________________
nix-commits mailing list
[email protected]
http://lists.science.uu.nl/mailman/listinfo/nix-commits