Fix fill_2d not doing what it is specified to do.
[dcpomatic.git] / src / lib / exceptions.h
index 52f257a8d3f558550ccba9724dfe612e3eca55c0..05c66df3a66e57bc2ed3c236b1f6e637bdfd81ee 100644 (file)
 #ifndef DCPOMATIC_EXCEPTIONS_H
 #define DCPOMATIC_EXCEPTIONS_H
 
-#include <stdexcept>
-#include <cstring>
-#include <boost/exception/all.hpp>
-#include <boost/filesystem.hpp>
 #include <boost/thread.hpp>
 extern "C" {
 #include <libavutil/pixfmt.h>
 }
+#include <boost/exception/all.hpp>
+#include <boost/filesystem.hpp>
+#include <stdexcept>
+#include <cstring>
 
 /** @class StringError
  *  @brief A parent class for exceptions using messages held in a std::string
@@ -284,8 +284,9 @@ public:
        void rethrow () {
                boost::mutex::scoped_lock lm (_mutex);
                if (_exception) {
-                       boost::rethrow_exception (_exception);
+                       boost::exception_ptr tmp = _exception;
                        _exception = boost::exception_ptr ();
+                       boost::rethrow_exception (tmp);
                }
        }