Make terminate_threads() less likely to leave _threads containing invalid pointers.
[dcpomatic.git] / src / lib / digester.cc
index 70c2babf5e4fd6d054a5db9a5f5594d2f49c3848..7bcc77646f8245873006fc6f23c675008179b8fd 100644 (file)
@@ -19,9 +19,9 @@
 */
 
 #include "digester.h"
-#include <locked_sstream.h>
 #include <nettle/md5.h>
 #include <iomanip>
+#include <cstdio>
 
 using std::string;
 using std::hex;
@@ -57,12 +57,12 @@ Digester::get () const
                unsigned char digest[MD5_DIGEST_SIZE];
                md5_digest (&_context, MD5_DIGEST_SIZE, digest);
 
-               locked_stringstream s;
+               char hex[MD5_DIGEST_SIZE * 2 + 1];
                for (int i = 0; i < MD5_DIGEST_SIZE; ++i) {
-                       s << hex << setfill('0') << setw(2) << ((int) digest[i]);
+                       sprintf(hex + i * 2, "%02x", digest[i]);
                }
 
-               _digest = s.str ();
+               _digest = hex;
        }
 
        return _digest.get ();