I’m currently trying a build with no wxString reference in that particular spot, and overriding the routine at the SCH_FIELD level to lock a mutex when copying the string to the stack. I’ll email again once I have results….
(Note however that this is a piecemeal approach: we’d still have to find all things affected and guard them with mutexes. It just keeps the guard from “escaping” through a returned reference.) > On 3 Apr 2019, at 16:15, Seth Hillbrand <[email protected]> wrote: > > Hi Jeff- > > The major downside to our using UTF-16 is that it is not endian-independent. > Unless we drop support for big-endian platforms, we'll need to handle both > cases. I needn't tell you what a pain that would be. > > Maybe we can just not return wxString references? Enforce a getter/setter > paradigm and pass the object? > > Thoughts? > -S > > > Am 2019-04-03 09:35, schrieb Jeff Young: >> Jon is currently fighting another wxString multi-threading issue. >> Having done quite a few of these myself, I feel for him. >> A lot of them were threaded accesses to globals, so it was easy enough >> to make the globals std::strings. However, this one is EDA_TEXT’s >> m_Text field. That’s going to be a pretty big change to move to >> std::string. And it’s nearly impossible to compartmentalise because >> returning a const& isn’t really const (iterating over the string will >> modify the linked-list of iterators, which is where the trouble comes >> in). >> What about moving Kicad to UTF16 internally? (The linked list of >> iterators is a performance optimisation specifically for UTF8 builds.) >> _______________________________________________ >> Mailing list: https://launchpad.net/~kicad-developers >> Post to : [email protected] >> Unsubscribe : https://launchpad.net/~kicad-developers >> More help : https://help.launchpad.net/ListHelp _______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : [email protected] Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp

