forked from boostorg/system
Make init_decoders[] a function-local static, rather than global, to avoid
problems with order of initialisation of globals across translation units. Thanks to Oleg Kosenkov for reporting this issue and suggesting a fix. [SVN r37380]
This commit is contained in:
@@ -261,7 +261,11 @@ namespace
|
|||||||
decoder_element() : ed(0), md(0), wmd(0) {}
|
decoder_element() : ed(0), md(0), wmd(0) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
const decoder_element init_decoders[] =
|
typedef std::vector< decoder_element > decoder_vec_type;
|
||||||
|
|
||||||
|
decoder_vec_type & decoder_vec()
|
||||||
|
{
|
||||||
|
static const decoder_element init_decoders[] =
|
||||||
#ifdef BOOST_WINDOWS_API
|
#ifdef BOOST_WINDOWS_API
|
||||||
{ decoder_element( errno_ed, errno_md, errno_wmd ),
|
{ decoder_element( errno_ed, errno_md, errno_wmd ),
|
||||||
decoder_element( windows_ed, windows_md, windows_wmd) };
|
decoder_element( windows_ed, windows_md, windows_wmd) };
|
||||||
@@ -269,10 +273,6 @@ namespace
|
|||||||
{ decoder_element( errno_ed, errno_md, errno_wmd ) };
|
{ decoder_element( errno_ed, errno_md, errno_wmd ) };
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef std::vector< decoder_element > decoder_vec_type;
|
|
||||||
|
|
||||||
decoder_vec_type & decoder_vec()
|
|
||||||
{
|
|
||||||
static decoder_vec_type dv( init_decoders,
|
static decoder_vec_type dv( init_decoders,
|
||||||
init_decoders + sizeof(init_decoders)/sizeof(decoder_element));
|
init_decoders + sizeof(init_decoders)/sizeof(decoder_element));
|
||||||
return dv;
|
return dv;
|
||||||
|
Reference in New Issue
Block a user