qdeleteall

May 15, 2018 ยท View on GitHub

Finds places where a call to qDeleteAll() has a redundant values() or keys() call. Those calls create a temporary QList<int> and allocate memory.

Example

QSet<Cookies> set;

// BAD: Unneeded container iteration and memory allocation to construct list of values
qDeleteAll(set.values());

// GOOD: Unneeded container iteration and memory allocation to construct list of values
qDeleteAll(set);

Pitfalls

Very rarely you might be deleting a list of QObjects who's destroyed() signal is connected to some code that modifies the original container. In the case of this contrived example iterating over the container copy is safer.