Closed Bug 585953 Opened 15 years ago Closed 7 years ago

ASSERTION: cannot setlocale: 'locale', in nsUNIXCharset.cpp, line 224 android debug build

Categories

(Core :: Internationalization, defect)

ARM
Android
defect
Not set
normal

Tracking

()

RESOLVED WONTFIX

People

(Reporter: blassey, Assigned: smontagu)

Details

I see this assertion when running an android debug build on the nexus one
stack: Program received signal SIGBUS, Bus error. [Switching to Thread 3770] NS_DebugBreak_P (aSeverity=1, aStr=0x83493ba9 "cannot setlocale", aExpr=0x83594799 "locale", aFile=<value optimized out>, aLine=0) at ../../../xpcom/base/nsDebugImpl.cpp:371 371 Break(buf.buffer); (gdb) bt #0 NS_DebugBreak_P (aSeverity=1, aStr=0x83493ba9 "cannot setlocale", aExpr=0x83594799 "locale", aFile=<value optimized out>, aLine=0) at ../../../xpcom/base/nsDebugImpl.cpp:371 #1 0x82314d0c in nsPlatformCharset::Init (this=0x51f52040) at ../../../../intl/uconv/src/nsUNIXCharset.cpp:224 #2 0x8230d0c8 in nsPlatformCharsetConstructor (aOuter=<value optimized out>, aIID=..., aResult=0x487fc3fc) at ../../../../intl/uconv/src/nsUConvModule.cpp:608 #3 0x83168d90 in mozilla::GenericFactory::CreateInstance (this=<value optimized out>, aOuter=<value optimized out>, aIID=<value optimized out>, aResult=0x444e8) at GenericFactory.cpp:48 #4 0x831b2a3c in nsComponentManagerImpl::CreateInstanceByContractID (this=<value optimized out>, aContractID=0x8341aec3 "@mozilla.org/intl/platformcharset;1", aDelegate=0x0, aIID=..., aResult=0x487fc3fc) at ../../../xpcom/components/nsComponentManager.cpp:1280 #5 0x831b4184 in nsComponentManagerImpl::GetServiceByContractID (this=0x4863f100, aContractID=<value optimized out>, aIID=..., result=0x487fc554) at ../../../xpcom/components/nsComponentManager.cpp:1642 #6 0x8315e084 in nsGetServiceByContractIDWithError::operator() (this=0x487fc53c, aIID=..., aInstancePtr=0x6) at nsComponentManagerUtils.cpp:288 #7 0x823310dc in assign_from_gs_contractid_with_error (this=0x52123fa0, locale=<value optimized out>) at ../../../../dist/include/nsCOMPtr.h:1262 #8 nsCOMPtr (this=0x52123fa0, locale=<value optimized out>) at ../../../../dist/include/nsCOMPtr.h:635 #9 nsCollationUnix::Initialize (this=0x52123fa0, locale=<value optimized out>) at ../../../../../intl/locale/src/unix/nsCollationUnix.cpp:134 #10 0x8232d5cc in nsCollationFactory::CreateCollation (this=<value optimized out>, locale=0x4edcdf00, instancePtr=0x837cbf2c) at ../../../../intl/locale/src/nsCollation.cpp:66 #11 0x8288c814 in LocaleCompare (cx=0x4d98a400, src1=0x4dabaff0, src2=0x51e33400, rval=0x4d4f1638) at ../../../dom/base/nsJSEnvironment.cpp:796 #12 0x81573144 in ?? () Cannot access memory at address 0xffffe558 #13 0x81573144 in ?? () Cannot access memory at address 0xffffe558 Backtrace stopped: previous frame identical to this frame (corrupt stack?)
setlocale returns null on Android, which is probably not such a big deal in itself. In fact that assertion could probably become a warning. However it is worth checking that the platform charset does get set correctly at some point and doesn't fall back to ISO-8859-1.
NS_IsNativeUTF8() is set to always return true on Android. Should be enough I think.
nsPlatformCharset is gone now
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.