[Libreoffice-commits] core.git: Branch 'libreoffice-5-0' - pyuno/source

Michael Stahl mstahl at redhat.com
Wed Jun 10 05:50:08 PDT 2015


 pyuno/source/module/pyuno_runtime.cxx |   44 ----------------------------------
 1 file changed, 44 deletions(-)

New commits:
commit 4baaa084fc9b8180809c223cbe192d78e383431d
Author: Michael Stahl <mstahl at redhat.com>
Date:   Wed Jun 10 13:07:17 2015 +0200

    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

diff --git a/pyuno/source/module/pyuno_runtime.cxx b/pyuno/source/module/pyuno_runtime.cxx
index 96bc9ae..e0f58ae 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" );
 }
 
 


More information about the Libreoffice-commits mailing list