Multiple QRegExp crashes when multithreading in KRunner

Matthias Fuchs mat69 at gmx.net
Sun Jan 16 14:15:13 GMT 2011


Am Samstag 15 Januar 2011, 15:08:28 schrieb Thiago Macieira:
> On Saturday, 15 de January de 2011 12:28:38 Ingo Klöcker wrote:
> > On Friday 14 January 2011, Thiago Macieira wrote:
> > > On Friday, 14 de January de 2011 21:49:01 Ingo Klöcker wrote:
> > > > On Friday 14 January 2011, Thiago Macieira wrote:
> > > > > On Friday, 14 de January de 2011 13:46:19 Sebastian Trueg wrote:
> > > > > > However, the query parser still uses static QRegExp objects
> > > > > > which seems a bad idea, isn't that right?
> > > > > 
> > > > > static QRegExp are a bad idea regardless of whether threading is
> > > > > involved or not.
> > > > 
> > > > Why?
> > > 
> > > Because it's static. Static non-PODs aren't a good idea.
> > 
> > Where static means file static, right?
> 
> File-static, class-static or function-static, though function-static is the
> least evil of those.

Again another crash -- with Qt 4.6.2 -- that should not happen if I understood 
everything correctly:

term.contains(QRegExp("^[a-zA-Z0-9\\-\\.]+\\.[a-zA-Z]{2,6}"))

http://websvn.kde.org/tags/KDE/4.4.2/kdebase/workspace/plasma/generic/runners/locations/locationrunner.cpp?view=markup 
line 99
https://bugs.kde.org/show_bug.cgi?id=247117

The code has changed since then (for KDE 4.6), so asking users to retry with a 
newer KDE version would not get valuable information.
Still I tried to reproduce the crash with the old code and with Qt 4.7.1 but 
was not able, so is that fixed there?




More information about the kde-core-devel mailing list