I love it when I send a question to an e-mail list then find the answer myself. My bad, the NSSpeechSynthesizer documentation at apple was wrong. Filing a bug now.
BR, Jeremy On Mon, Mar 2, 2015 at 7:16 PM, Jeremy Whiting <[email protected]> wrote: > Hello, > > Inside QtSpeech in the mac backend we have a method that worked fine with > Qt 5.4.0. I've recently upgraded to Qt 5.4.1 and when trying to run the > example widget I'm getting an exception thrown when we call > QString::fromNSString on the age string we get from the NSSpeechSynthesizer > voice's attributes NSDictionary. The backtrace in lldb looks like this: > > bowser:qtspeech jeremy$ lldb > examples/widgets/hello_speak/hello_speak.app/Contents/MacOS/hello_speak > > (lldb) target create > "examples/widgets/hello_speak/hello_speak.app/Contents/MacOS/hello_speak" > > Current executable set to > 'examples/widgets/hello_speak/hello_speak.app/Contents/MacOS/hello_speak' > (x86_64). > > (lldb) r > > Process 477 launched: > '/Users/jeremy/devel/kde/src/qtspeech/examples/widgets/hello_speak/hello_speak.app/Contents/MacOS/hello_speak' > (x86_64) > > Setting voice name to "Agnes" > > gender is "VoiceGenderFemale" > > age is 0x2337 > > 2015-03-02 19:08:43.649 hello_speak[477:8289] -[__NSCFNumber length]: > unrecognized selector sent to instance 0x2337 > > 2015-03-02 19:08:43.649 hello_speak[477:8289] An uncaught exception was > raised > > 2015-03-02 19:08:43.650 hello_speak[477:8289] -[__NSCFNumber length]: > unrecognized selector sent to instance 0x2337 > > 2015-03-02 19:08:43.650 hello_speak[477:8289] ( > > 0 CoreFoundation 0x00007fff92a7266c > __exceptionPreprocess + 172 > > 1 libobjc.A.dylib 0x00007fff93e6276e > objc_exception_throw + 43 > > 2 CoreFoundation 0x00007fff92a756dd > -[NSObject(NSObject) doesNotRecognizeSelector:] + 205 > > 3 CoreFoundation 0x00007fff929bcaa4 > ___forwarding___ + 1028 > > 4 CoreFoundation 0x00007fff929bc618 > _CF_forwarding_prep_0 + 120 > > 5 QtCore 0x000000010002742b > _ZN7QString12fromNSStringEPK8NSString + 59 > > 6 QtTextToSpeech 0x0000000100013f3e > _ZNK23QTextToSpeechPrivateMac15voiceForNSVoiceEP8NSString + 1038 > > 7 QtTextToSpeech 0x000000010001489b > _ZNK23QTextToSpeechPrivateMac15availableVoicesEv + 219 > > 8 QtTextToSpeech 0x00000001000155a3 > _ZNK13QTextToSpeech15availableVoicesEv + 19 > > 9 hello_speak 0x0000000100004590 > _ZN10MainWindow13localeChangedERK7QLocale + 176 > > 10 hello_speak 0x0000000100003dc7 > _ZN10MainWindowC2EP7QWidget + 935 > > 11 hello_speak 0x000000010000394e main + 62 > > 12 hello_speak 0x0000000100003904 start + 52 > > 13 ??? 0x0000000000000001 0x0 + 1 > > ) > > 2015-03-02 19:08:43.650 hello_speak[477:8289] *** Terminating app due to > uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFNumber > length]: unrecognized selector sent to instance 0x2337' > > *** First throw call stack: > > ( > > 0 CoreFoundation 0x00007fff92a7266c > __exceptionPreprocess + 172 > > 1 libobjc.A.dylib 0x00007fff93e6276e > objc_exception_throw + 43 > > 2 CoreFoundation 0x00007fff92a756dd > -[NSObject(NSObject) doesNotRecognizeSelector:] + 205 > > 3 CoreFoundation 0x00007fff929bcaa4 > ___forwarding___ + 1028 > > 4 CoreFoundation 0x00007fff929bc618 > _CF_forwarding_prep_0 + 120 > > 5 QtCore 0x000000010002742b > _ZN7QString12fromNSStringEPK8NSString + 59 > > 6 QtTextToSpeech 0x0000000100013f3e > _ZNK23QTextToSpeechPrivateMac15voiceForNSVoiceEP8NSString + 1038 > > 7 QtTextToSpeech 0x000000010001489b > _ZNK23QTextToSpeechPrivateMac15availableVoicesEv + 219 > > 8 QtTextToSpeech 0x00000001000155a3 > _ZNK13QTextToSpeech15availableVoicesEv + 19 > > 9 hello_speak 0x0000000100004590 > _ZN10MainWindow13localeChangedERK7QLocale + 176 > > 10 hello_speak 0x0000000100003dc7 > _ZN10MainWindowC2EP7QWidget + 935 > > 11 hello_speak 0x000000010000394e main + 62 > > 12 hello_speak 0x0000000100003904 start + 52 > > 13 ??? 0x0000000000000001 0x0 + 1 > > ) > > libc++abi.dylib: terminating with uncaught exception of type NSException > > Process 477 stopped > > * thread #1: tid = 0x2061, 0x00007fff94542286 > libsystem_kernel.dylib`__pthread_kill + 10, queue = > 'com.apple.main-thread', stop reason = signal SIGABRT > > frame #0: 0x00007fff94542286 libsystem_kernel.dylib`__pthread_kill + 10 > > libsystem_kernel.dylib`__pthread_kill + 10: > > -> 0x7fff94542286: jae 0x7fff94542290 ; __pthread_kill + 20 > > 0x7fff94542288: movq %rax, %rdi > > 0x7fff9454228b: jmp 0x7fff9453dc53 ; cerror_nocancel > > 0x7fff94542290: retq > > (lldb) q > > Quitting LLDB will kill one or more processes. Do you really want to > proceed: [Y/n] y > > > Did something change within QString::fromNSString to cause it to throw an > exception in some cases? It seems we are trying to send a message to some > object that can't respond to that message. > > > thanks, > > Jeremy >
_______________________________________________ Development mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/development
