diff --git a/src/corelib/plugin/qlibrary.cpp b/src/corelib/plugin/qlibrary.cpp index bb0a03d72d4..72ced32f413 100644 --- a/src/corelib/plugin/qlibrary.cpp +++ b/src/corelib/plugin/qlibrary.cpp @@ -414,18 +414,15 @@ inline QLibraryPrivate *QLibraryStore::findOrCreate(const QString &fileName, con QString mapName = version.isEmpty() ? fileName : fileName + u'\0' + version; - // check if this library is already loaded - QLibraryPrivate *lib = data->libraryMap.value(mapName); + QLibraryPrivate *&lib = data->libraryMap[std::move(mapName)]; if (lib) { + // already loaded lib->libraryRefCount.ref(); lib->mergeLoadHints(loadHints); } else { lib = lazyNewLib(); } - // track this library - data->libraryMap.insert(mapName, lib); - return lib; }