diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2015-01-08 14:57:09 +0100 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2015-01-09 12:06:23 +0100 |
commit | 3b9629e8bdbf23bb793c88f967b2cfe2b8256278 (patch) | |
tree | 2eff4cedcccf1683845579c6cc587dc68f1d6973 /src/corelib/io/qstandardpaths_win.cpp | |
parent | 65eb57392685d69313217fd17e06376db8f9c05b (diff) |
QStateMachine: replace a QHash key involving a QPointer
Using QPointers (or any type that makes a QPointer part of its identity) as a key
in any associative container is wrong. They get externally set to nullptr,
violating the associative container's class invariants, which could lead to
data corruption, even though bucket-based hash implementations are less susceptible
than binary trees.
To fix, write a new class that acts much like the old QPair<QPointer<>,QByteArray>,
but uses the QPointer only as a guard, not as part of its identity. To preseve
identity, also saves the naked pointer originally passed and uses that for op==
and qHash().
Change-Id: I4fa5a6bf86bad8fe7f5abe53d7c7f3ad3754d8d6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/io/qstandardpaths_win.cpp')
0 files changed, 0 insertions, 0 deletions