Dolphin and Baloo

Frank Reininghaus frank78ac at googlemail.com
Wed Feb 5 10:18:05 GMT 2014


Hi,

2014-02-04 Frank Reininghaus:
[...]
> (c) Unless I'm overlooking something, it looks to me like
> rolesData(KFileItem) invokes applyChangedBalooRoles(QString), which
> will then finally trigger applyChangedBalooRolesJobFinished(KJob*).
> The latter function then calls rolesData(KFileItem) again. This looks
> like an infinite recursion to me. It won't cause a crash or block the
> GUI because two of the recursive calls are asynchronous, but it will
> make Dolphin use 100% of one CPU core permanently. Or am I missing
> something here?

I thought again about this issue. Maybe the best solution is to simply
drop the call to rolesData from applyChangedBalooRolesJobFinished? If
any non-Baloo roles need to be updated, this will happen anyway
because we receive a signal from KDirWatch either directly or
indirectly (via KFileItemModel's itemsChanged signal) in
KFileItemModelRolesUpdater if anything interesting changes.

So I think that everything should work OK (and without infinite
recursions) if the QHash data is simply initialized to an empty QHash
in applyChangedBalooRolesJobFinished, but I haven't tested it.

Cheers,
Frank




More information about the kfm-devel mailing list