[Development] Is Qt allowed caching the home dir path?

Olivier Goffart olivier at woboq.com
Sun Oct 27 17:13:37 CET 2013


On Sunday 27 October 2013 04:53:41 Jiergir Ogoerg wrote:
> It looks like only the home and temp dir paths are worth caching, their
> window$ implementation is ~ 30-40 lines of code
> if counting QDir's subcalls to QFileSystemEngine.
> 
> For these two QDir functions to stay one liners and lock-less (while thread
> safe), I'm caching the paths in QDirPrivate
> (QTSRC/qtbase/src/corelib/io/qdir_p.h and
> QTSRC/qtbase/src/corelib/io/qdir.cpp),

Don't use global static QStrings. (they have a constructor that is run at load 
time of the library, we don't allow that within Qt)

Use the Q_GLOBAL_STATIC macro. 
Something like this:


Q_GLOBAL_STATIC_WITH_ARGS(QString, homePath, (QFileSystemEngine::homePath()));
QString QDir::homePath()
{
    return homePath();
}

-- 
Olivier

Woboq - Qt services and support - http://woboq.com - http://code.woboq.org



More information about the Development mailing list