summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2013-11-17 00:56:28 +0000
committerCarl Hetherington <cth@carlh.net>2013-11-17 00:56:28 +0000
commit39960754026821775e6753a83f6934b8befa0dc2 (patch)
tree8d772c04725d86d9525f511f08062f72a21bef61 /src/lib
parentf84289fe40cbd5fbf4f139f1c70870787bac7d3a (diff)
More uses of LocaleGuard; hence speculative fix for servers crashing on lexical_cast.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/audio_content.cc4
-rw-r--r--src/lib/colour_conversion.cc4
-rw-r--r--src/lib/sndfile_content.cc1
-rw-r--r--src/lib/subtitle_content.cc5
4 files changed, 14 insertions, 0 deletions
diff --git a/src/lib/audio_content.cc b/src/lib/audio_content.cc
index 100264d44..e0eaacb91 100644
--- a/src/lib/audio_content.cc
+++ b/src/lib/audio_content.cc
@@ -54,6 +54,8 @@ AudioContent::AudioContent (shared_ptr<const Film> f, boost::filesystem::path p)
AudioContent::AudioContent (shared_ptr<const Film> f, shared_ptr<const cxml::Node> node)
: Content (f, node)
{
+ LocaleGuard lg;
+
_audio_gain = node->number_child<float> ("AudioGain");
_audio_delay = node->number_child<int> ("AudioDelay");
}
@@ -61,6 +63,8 @@ AudioContent::AudioContent (shared_ptr<const Film> f, shared_ptr<const cxml::Nod
void
AudioContent::as_xml (xmlpp::Node* node) const
{
+ LocaleGuard lg;
+
boost::mutex::scoped_lock lm (_mutex);
node->add_child("AudioGain")->add_child_text (lexical_cast<string> (_audio_gain));
node->add_child("AudioDelay")->add_child_text (lexical_cast<string> (_audio_delay));
diff --git a/src/lib/colour_conversion.cc b/src/lib/colour_conversion.cc
index ceb302971..95d267a8c 100644
--- a/src/lib/colour_conversion.cc
+++ b/src/lib/colour_conversion.cc
@@ -64,6 +64,8 @@ ColourConversion::ColourConversion (double i, bool il, double const m[3][3], dou
ColourConversion::ColourConversion (shared_ptr<cxml::Node> node)
: matrix (3, 3)
{
+ LocaleGuard lg;
+
input_gamma = node->number_child<double> ("InputGamma");
input_gamma_linearised = node->bool_child ("InputGammaLinearised");
@@ -86,6 +88,8 @@ ColourConversion::ColourConversion (shared_ptr<cxml::Node> node)
void
ColourConversion::as_xml (xmlpp::Node* node) const
{
+ LocaleGuard lg;
+
node->add_child("InputGamma")->add_child_text (lexical_cast<string> (input_gamma));
node->add_child("InputGammaLinearised")->add_child_text (input_gamma_linearised ? "1" : "0");
diff --git a/src/lib/sndfile_content.cc b/src/lib/sndfile_content.cc
index d57cf04e3..31c1b4698 100644
--- a/src/lib/sndfile_content.cc
+++ b/src/lib/sndfile_content.cc
@@ -23,6 +23,7 @@
#include "film.h"
#include "compose.hpp"
#include "job.h"
+#include "util.h"
#include "i18n.h"
diff --git a/src/lib/subtitle_content.cc b/src/lib/subtitle_content.cc
index 9fefbbfcd..1194e2dc9 100644
--- a/src/lib/subtitle_content.cc
+++ b/src/lib/subtitle_content.cc
@@ -19,6 +19,7 @@
#include <libcxml/cxml.h>
#include "subtitle_content.h"
+#include "util.h"
using std::string;
using boost::shared_ptr;
@@ -40,6 +41,8 @@ SubtitleContent::SubtitleContent (shared_ptr<const Film> f, shared_ptr<const cxm
, _subtitle_offset (0)
, _subtitle_scale (1)
{
+ LocaleGuard lg;
+
_subtitle_offset = node->number_child<float> ("SubtitleOffset");
_subtitle_scale = node->number_child<float> ("SubtitleScale");
}
@@ -47,6 +50,8 @@ SubtitleContent::SubtitleContent (shared_ptr<const Film> f, shared_ptr<const cxm
void
SubtitleContent::as_xml (xmlpp::Node* root) const
{
+ LocaleGuard lg;
+
root->add_child("SubtitleOffset")->add_child_text (lexical_cast<string> (_subtitle_offset));
root->add_child("SubtitleScale")->add_child_text (lexical_cast<string> (_subtitle_scale));
}