summaryrefslogtreecommitdiff
path: root/src/wx
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/wx
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/wx')
-rw-r--r--src/wx/colour_conversion_editor.cc85
-rw-r--r--src/wx/dolby_doremi_certificate_panel.cc6
-rw-r--r--src/wx/time_picker.cc7
3 files changed, 35 insertions, 63 deletions
diff --git a/src/wx/colour_conversion_editor.cc b/src/wx/colour_conversion_editor.cc
index 79365bf88..3d4363cb9 100644
--- a/src/wx/colour_conversion_editor.cc
+++ b/src/wx/colour_conversion_editor.cc
@@ -22,7 +22,6 @@
#include "lib/raw_convert.h"
#include "wx_util.h"
#include "colour_conversion_editor.h"
-#include <locked_sstream.h>
#include <dcp/gamma_transfer_function.h>
#include <dcp/modified_gamma_transfer_function.h>
#include <wx/spinctrl.h>
@@ -247,51 +246,32 @@ ColourConversionEditor::set (ColourConversion conversion)
_ignore_chromaticity_changed = true;
- locked_stringstream s;
- s.setf (std::ios::fixed, std::ios::floatfield);
- s.precision (6);
-
- s << conversion.red().x;
- _red_x->SetValue (std_to_wx (s.str ()));
-
- s.str ("");
- s << conversion.red().y;
- _red_y->SetValue (std_to_wx (s.str ()));
-
- s.str ("");
- s << conversion.green().x;
- _green_x->SetValue (std_to_wx (s.str ()));
-
- s.str ("");
- s << conversion.green().y;
- _green_y->SetValue (std_to_wx (s.str ()));
-
- s.str ("");
- s << conversion.blue().x;
- _blue_x->SetValue (std_to_wx (s.str ()));
-
- s.str ("");
- s << conversion.blue().y;
- _blue_y->SetValue (std_to_wx (s.str ()));
-
- s.str ("");
- s << conversion.white().x;
- _white_x->SetValue (std_to_wx (s.str ()));
-
- s.str ("");
- s << conversion.white().y;
- _white_y->SetValue (std_to_wx (s.str ()));
+ char buffer[256];
+ snprintf (buffer, sizeof (buffer), "%.6f", conversion.red().x);
+ _red_x->SetValue (std_to_wx (buffer));
+ snprintf (buffer, sizeof (buffer), "%.6f", conversion.red().y);
+ _red_y->SetValue (std_to_wx (buffer));
+ snprintf (buffer, sizeof (buffer), "%.6f", conversion.green().x);
+ _green_x->SetValue (std_to_wx (buffer));
+ snprintf (buffer, sizeof (buffer), "%.6f", conversion.green().y);
+ _green_y->SetValue (std_to_wx (buffer));
+ snprintf (buffer, sizeof (buffer), "%.6f", conversion.blue().x);
+ _blue_x->SetValue (std_to_wx (buffer));
+ snprintf (buffer, sizeof (buffer), "%.6f", conversion.blue().y);
+ _blue_y->SetValue (std_to_wx (buffer));
+ snprintf (buffer, sizeof (buffer), "%.6f", conversion.white().x);
+ _white_x->SetValue (std_to_wx (buffer));
+ snprintf (buffer, sizeof (buffer), "%.6f", conversion.white().y);
+ _white_y->SetValue (std_to_wx (buffer));
_ignore_chromaticity_changed = false;
if (conversion.adjusted_white ()) {
_adjust_white->SetValue (true);
- s.str ("");
- s << conversion.adjusted_white().get().x;
- _adjusted_white_x->SetValue (std_to_wx (s.str ()));
- s.str ("");
- s << conversion.adjusted_white().get().y;
- _adjusted_white_y->SetValue (std_to_wx (s.str ()));
+ snprintf (buffer, sizeof (buffer), "%.6f", conversion.adjusted_white().get().x);
+ _adjusted_white_x->SetValue (std_to_wx (buffer));
+ snprintf (buffer, sizeof (buffer), "%.6f", conversion.adjusted_white().get().y);
+ _adjusted_white_y->SetValue (std_to_wx (buffer));
} else {
_adjust_white->SetValue (false);
}
@@ -394,11 +374,9 @@ ColourConversionEditor::update_bradford ()
boost::numeric::ublas::matrix<double> m = get().bradford ();
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 3; ++j) {
- locked_stringstream s;
- s.setf (std::ios::fixed, std::ios::floatfield);
- s.precision (7);
- s << m (i, j);
- _bradford[i][j]->SetLabel (std_to_wx (s.str ()));
+ char buffer[256];
+ snprintf (buffer, sizeof (buffer), "%.7f", m (i, j));
+ _bradford[i][j]->SetLabel (std_to_wx (buffer));
}
}
}
@@ -409,11 +387,9 @@ ColourConversionEditor::update_rgb_to_xyz ()
boost::numeric::ublas::matrix<double> m = get().rgb_to_xyz ();
for (int i = 0; i < 3; ++i) {
for (int j = 0; j < 3; ++j) {
- locked_stringstream s;
- s.setf (std::ios::fixed, std::ios::floatfield);
- s.precision (7);
- s << m (i, j);
- _rgb_to_xyz[i][j]->SetLabel (std_to_wx (s.str ()));
+ char buffer[256];
+ snprintf (buffer, sizeof (buffer), "%.7f", m (i, j));
+ _rgb_to_xyz[i][j]->SetLabel (std_to_wx (buffer));
}
}
}
@@ -442,8 +418,7 @@ ColourConversionEditor::set_spin_ctrl (wxSpinCtrlDouble* control, double value)
void
ColourConversionEditor::set_text_ctrl (wxTextCtrl* control, double value)
{
- locked_stringstream s;
- s.precision (7);
- s << value;
- control->SetValue (std_to_wx (s.str ()));
+ char buffer[256];
+ snprintf (buffer, sizeof (buffer), "%.7f", value);
+ control->SetValue (std_to_wx (buffer));
}
diff --git a/src/wx/dolby_doremi_certificate_panel.cc b/src/wx/dolby_doremi_certificate_panel.cc
index fcff93a06..18a0ed66e 100644
--- a/src/wx/dolby_doremi_certificate_panel.cc
+++ b/src/wx/dolby_doremi_certificate_panel.cc
@@ -205,12 +205,12 @@ DolbyDoremiCertificatePanel::finish_download (string serial, wxStaticText* messa
} else {
message->SetLabel (wxT (""));
- locked_stringstream s;
+ string s;
BOOST_FOREACH (string e, errors) {
- s << e << "\n";
+ s += e + "\n";
}
- error_dialog (this, std_to_wx (s.str ()));
+ error_dialog (this, std_to_wx (s));
}
}
diff --git a/src/wx/time_picker.cc b/src/wx/time_picker.cc
index a18182138..4706c896b 100644
--- a/src/wx/time_picker.cc
+++ b/src/wx/time_picker.cc
@@ -80,11 +80,8 @@ TimePicker::update_text ()
_block_update = true;
- _hours->SetValue (std_to_wx (raw_convert<string> (_hours_spin->GetValue ())));
-
- locked_stringstream m;
- m << setfill('0') << setw(2) << _minutes_spin->GetValue();
- _minutes->SetValue (std_to_wx (m.str()));
+ _hours->SetValue (wxString::Format ("%d", _hours_spin->GetValue ()));
+ _minutes->SetValue (wxString::Format ("%02d", _minutes_spin->GetValue ()));
_block_update = false;