summaryrefslogtreecommitdiff
path: root/src/tools
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2016-08-10 16:38:33 +0100
committerCarl Hetherington <cth@carlh.net>2016-08-12 09:13:51 +0100
commitb1dc9c3a2f7e55c9afc5bf2d5b465371b048e14f (patch)
tree9968238c6c0511f044e6fcdb4abcc08b5eb28f27 /src/tools
parent4a0ae92e28d7d1f0dd648d1b620efc324fdef161 (diff)
Remove all use of stringstream in an attempt to fix
the suspected thread-unsafe crash bugs on OS X.
Diffstat (limited to 'src/tools')
-rw-r--r--src/tools/dcpomatic.cc10
-rw-r--r--src/tools/dcpomatic_kdm_cli.cc7
-rw-r--r--src/tools/dcpomatic_server.cc4
3 files changed, 10 insertions, 11 deletions
diff --git a/src/tools/dcpomatic.cc b/src/tools/dcpomatic.cc
index cd827016d..7c7b39b04 100644
--- a/src/tools/dcpomatic.cc
+++ b/src/tools/dcpomatic.cc
@@ -75,6 +75,7 @@
#include <boost/noncopyable.hpp>
#include <iostream>
#include <fstream>
+/* This is OK as it's only used with DCPOMATIC_WINDOWS */
#include <sstream>
#ifdef check
@@ -900,12 +901,13 @@ private:
}
for (size_t i = 0; i < history.size(); ++i) {
- locked_stringstream s;
+ string s;
if (i < 9) {
- s << "&" << (i + 1) << " ";
+ s = String::compose ("&%1 %2", i + 1, history[i].string());
+ } else {
+ s = history[i].string();
}
- s << history[i].string();
- _file_menu->Insert (pos++, ID_file_history + i, std_to_wx (s.str ()));
+ _file_menu->Insert (pos++, ID_file_history + i, std_to_wx (s));
}
_history_items = history.size ();
diff --git a/src/tools/dcpomatic_kdm_cli.cc b/src/tools/dcpomatic_kdm_cli.cc
index de89a9c7c..5126e1954 100644
--- a/src/tools/dcpomatic_kdm_cli.cc
+++ b/src/tools/dcpomatic_kdm_cli.cc
@@ -29,7 +29,6 @@
#include "lib/config.h"
#include "lib/exceptions.h"
#include "lib/emailer.h"
-#include <locked_sstream.h>
#include <dcp/certificate.h>
#include <getopt.h>
#include <iostream>
@@ -82,10 +81,10 @@ time_from_string (string t)
static boost::posix_time::time_duration
duration_from_string (string d)
{
- locked_stringstream s (d);
int N;
- string unit;
- s >> N >> unit;
+ char unit_buf[64] = "\0";
+ sscanf (d.c_str(), "%d %64s", &N, unit_buf);
+ string const unit (unit_buf);
if (N == 0) {
cerr << "Could not understand duration \"" << d << "\"\n";
diff --git a/src/tools/dcpomatic_server.cc b/src/tools/dcpomatic_server.cc
index 08a04f35c..4e9d5592d 100644
--- a/src/tools/dcpomatic_server.cc
+++ b/src/tools/dcpomatic_server.cc
@@ -191,9 +191,7 @@ private:
void update_state ()
{
- locked_stringstream s;
- s << fixed << setprecision(1) << server_log->fps ();
- _fps->SetLabel (std_to_wx (s.str()));
+ _fps->SetLabel (wxString::Format ("%.1f", server_log->fps()));
}
wxTextCtrl* _text;