ATOF function LOCALE problem
#1
Hi all,

I have compiled and installed SVN revision 22793. When I try to run xbmc it crashed.
There are some information from the report:

Code:
############## XBMC CRASH LOG ###############

################ SYSTEM INFO ################
Date: Po zář  7 10:25:45 CEST 2009
XBMC Options:
Arch: i686
Kernel: Linux 2.6.24-24-generic #1 SMP Tue Aug 18 17:04:53 UTC 2009
Release:
    Distributor ID:     Ubuntu
    Description:        Ubuntu 8.04.3 LTS
    Release:    8.04
    Codename:   hardy
############## END SYSTEM INFO ##############

############### STACK TRACE #################
Core was generated by `/usr/local/share/xbmc/xbmc.bin'.
Program terminated with signal 6, Aborted.
[New process 2114]
#0  0xb7fda410 in __kernel_vsyscall ()

Thread 1 (process 2114):
#0  0xb7fda410 in __kernel_vsyscall ()
#1  0xb7146085 in raise () from /lib/tls/i686/cmov/libc.so.6
#2  0xb7147a01 in abort () from /lib/tls/i686/cmov/libc.so.6
#3  0x082b651e in CApplication::FatalErrorHandler (this=0x8c23120,
    WindowSystemInitialized=false, MapDrives=false, InitNetwork=true)
    at Application.cpp:440
#4  0x082ca9a7 in CApplication::Create (this=0x8c23120, hWnd=0x0)
    at Application.cpp:716
#5  0x085db000 in main (argc=1, argv=0xbfd05d74) at xbmc.cpp:129
############# END STACK TRACE ###############

I find out thah this "bug" is due to the ATOF function in guilib/SkinInfo.cpp in funciton Create(). I have added some fprintfs to the function and I have find out that this function return double number 2,0000 as conversion from string "2.11" (skin version). Because of this the variable 'bVersionOK' became false and XBMC ended with abort().

I thing this is related to my locales.

my locales:

Code:
LANG=cs_CZ.UTF-8
LC_CTYPE="cs_CZ.UTF-8"
LC_NUMERIC="cs_CZ.UTF-8"
LC_TIME="cs_CZ.UTF-8"
LC_COLLATE="cs_CZ.UTF-8"
LC_MONETARY="cs_CZ.UTF-8"
LC_MESSAGES="cs_CZ.UTF-8"
LC_PAPER="cs_CZ.UTF-8"
LC_NAME="cs_CZ.UTF-8"
LC_ADDRESS="cs_CZ.UTF-8"
LC_TELEPHONE="cs_CZ.UTF-8"
LC_MEASUREMENT="cs_CZ.UTF-8"
LC_IDENTIFICATION="cs_CZ.UTF-8"
LC_ALL=

When I set the LC_NUMERIC as "us" the atof conversion is ok, and xbmc will run, with this Gtk warning

Code:
(FEH.py:22002): Gtk-WARNING **: Locale not supported by C library.
    Using the fallback 'C' locale.

Xbmc will run too, if I change the skin version from '2.11' to '2,11'.

But when i have written small app on the same machine, which use atof to convert string "2.11" to double the output of this function was right, double number 2.11 .

Approximately 3 months ago, I have no problems with this (on the same machine and OS)

Regards
Tomas
Reply
#2
we have a diff @ trac for this. and before you ask; when we have the time and have fixed all the other issues with current svn
Reply
#3
thanks
Reply

Logout Mark Read Team Forum Stats Members Help
ATOF function LOCALE problem0