diff options
| author | Carl Hetherington <cth@carlh.net> | 2016-08-10 16:38:33 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2016-08-12 09:13:51 +0100 |
| commit | b1dc9c3a2f7e55c9afc5bf2d5b465371b048e14f (patch) | |
| tree | 9968238c6c0511f044e6fcdb4abcc08b5eb28f27 /src/wx | |
| parent | 4a0ae92e28d7d1f0dd648d1b620efc324fdef161 (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.cc | 85 | ||||
| -rw-r--r-- | src/wx/dolby_doremi_certificate_panel.cc | 6 | ||||
| -rw-r--r-- | src/wx/time_picker.cc | 7 |
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; |
