Ryan Norton wrote:
> 2.) use a later version of wxWidgets, because the bug may have been fixed
Yeah, try 2.8+ as there was a huge revamp done inbetween versions
Thanks Ryan. I appreciate hearing from you

Honestly, I can't see so many changes between 2.6.3 and 2.8 in terms of hid.cpp (?)
But let me specify. The crash occurs when getting the product name from the dictionary in wxHIDDevice::Create:
Code: Select all
//Get [product] name
CFStringRef cfsProduct = (CFStringRef)CFDictionaryGetValue(pDictionary, CFSTR(kIOHIDProductKey));
m_szProductName = wxMacCFStringHolder( cfsProduct, false ).AsString();
The 'wxMacCFStringHolder' crashes when returning the string as a wxString. I am completely unable to single step this or run it under a debugger as it only occur at one user.
The situation is such that 'CFDictionaryGetValue' appear to be returning "something" != NULL but I am not 100% sure it is a CFStringRef. That way, 'wxMacCFStringHolder' would crash, assuming it is a CFStringRef in the first place.
This user has a Kinesis USB keyboard. It has a built-in "hub", probably where he connects the mouse, possibly like the original Mac keyboard. Take a close look at the System Profile Dump:
Code: Select all
Kinesis Keyboard Hub:
Version: 3.10
Bus Power (mA): 500
Speed: Up to 12 Mb/sec
Manufacturer: PI Engineering
Product ID: 0x0081
Vendor ID: 0x05f3
USB/PS2 Wheel Mouse:
Version: 4.00
Bus Power (mA): 100
Speed: Up to 1.5 Mb/sec
Manufacturer: Kensington
Product ID: 0x1002
Vendor ID: 0x047d
USB Device:
Version: 3.10
Bus Power (mA): 124
Speed: Up to 12 Mb/sec
Product ID: 0x0007
Vendor ID: 0x05f3
The actual keyboard seem to be a sub device of his "hub".