summaryrefslogtreecommitdiff
path: root/pyuno
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2015-06-10 13:07:17 +0200
committerAndras Timar <andras.timar@collabora.com>2015-08-06 12:22:23 +0200
commit20da96a2c5a7b3da7a9e052266a42ce561921cc7 (patch)
treed9ebf2c16245b23ba6b6908f022523163b9a38f2 /pyuno
parentbf7efae534573d4d5f01f2034aa087cd255b7e84 (diff)
pyuno: remove obsolete LC_NUMERIC to "C" mangling code
The CPython changelog says for version 2.4: - Python no longer relies on the LC_NUMERIC locale setting to be the "C" locale; as a result, it no longer tries to prevent changing the LC_NUMERIC category. (cherry picked from commit 1ee5e1a17cbd50f84990fb43fac7e8c811e604a9) Conflicts: pyuno/source/module/pyuno_runtime.cxx Change-Id: I6d63c4dedca48c99bf81135d69285d9116a19740
Diffstat (limited to 'pyuno')
-rw-r--r--pyuno/source/module/pyuno_runtime.cxx44
1 files changed, 0 insertions, 44 deletions
diff --git a/pyuno/source/module/pyuno_runtime.cxx b/pyuno/source/module/pyuno_runtime.cxx
index 96bc9aea1cd1..e0f58ae2c08d 100644
--- a/pyuno/source/module/pyuno_runtime.cxx
+++ b/pyuno/source/module/pyuno_runtime.cxx
@@ -29,7 +29,6 @@
#include <rtl/strbuf.hxx>
#include <rtl/ustrbuf.hxx>
#include <rtl/bootstrap.hxx>
-#include <locale.h>
#include <typelib/typedescription.hxx>
@@ -982,26 +981,6 @@ Any Runtime::extractUnoException( const PyRef & excType, const PyRef &excValue,
}
-static const char * g_NUMERICID = "pyuno.lcNumeric";
-static ::std::vector< OString > g_localeList;
-
-static const char *ensureUnlimitedLifetime( const char *str )
-{
- int size = g_localeList.size();
- int i;
- for( i = 0 ; i < size ; i ++ )
- {
- if( 0 == strcmp( g_localeList[i].getStr(), str ) )
- break;
- }
- if( i == size )
- {
- g_localeList.push_back( str );
- }
- return g_localeList[i].getStr();
-}
-
-
PyThreadAttach::PyThreadAttach( PyInterpreterState *interp)
throw ( com::sun::star::uno::RuntimeException )
{
@@ -1009,35 +988,18 @@ PyThreadAttach::PyThreadAttach( PyInterpreterState *interp)
if( !tstate )
throw RuntimeException( "Couldn't create a pythreadstate" );
PyEval_AcquireThread( tstate);
- // set LC_NUMERIC to "C"
- const char * oldLocale =
- ensureUnlimitedLifetime( setlocale( LC_NUMERIC, 0 ) );
- setlocale( LC_NUMERIC, "C" );
- PyRef locale( // python requires C locale
- PyLong_FromVoidPtr( (void*)oldLocale ), SAL_NO_ACQUIRE);
- PyDict_SetItemString(
- PyThreadState_GetDict(), g_NUMERICID, locale.get() );
}
PyThreadAttach::~PyThreadAttach()
{
- PyObject *value =
- PyDict_GetItemString( PyThreadState_GetDict( ), g_NUMERICID );
- if( value )
- setlocale( LC_NUMERIC, static_cast<const char *>(PyLong_AsVoidPtr( value )) );
PyThreadState_Clear( tstate );
PyEval_ReleaseThread( tstate );
PyThreadState_Delete( tstate );
-
}
PyThreadDetach::PyThreadDetach() throw ( com::sun::star::uno::RuntimeException )
{
tstate = PyThreadState_Get();
- PyObject *value =
- PyDict_GetItemString( PyThreadState_GetDict( ), g_NUMERICID );
- if( value )
- setlocale( LC_NUMERIC, static_cast<const char *>(PyLong_AsVoidPtr( value )) );
PyEval_ReleaseThread( tstate );
}
@@ -1047,12 +1009,6 @@ PyThreadDetach::PyThreadDetach() throw ( com::sun::star::uno::RuntimeException )
PyThreadDetach::~PyThreadDetach()
{
PyEval_AcquireThread( tstate );
-// PyObject *value =
-// PyDict_GetItemString( PyThreadState_GetDict( ), g_NUMERICID );
-
- // python requires C LC_NUMERIC locale,
- // always set even when it is already "C"
- setlocale( LC_NUMERIC, "C" );
}