mirror of
https://bitbucket.org/smil3y/katie.git
synced 2025-02-24 10:52:56 +00:00
reuse QLibrary instances that are not unloaded
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
parent
6ccc7ba7fc
commit
86ca6fb3e1
1 changed files with 17 additions and 1 deletions
|
@ -600,7 +600,23 @@ void QLibrary::setFileNameAndVersion(const QString &fileName, int verNum)
|
|||
*/
|
||||
void QLibrary::setFileNameAndVersion(const QString &fileName, const QString &version)
|
||||
{
|
||||
d_ptr->fileName = qt_find_library(fileName, version);
|
||||
QMutexLocker locker(qGlobalLibraryMutex());
|
||||
// if the library path is not the same it may very well be library with different symbols
|
||||
const QString librarymatch = qt_find_library(fileName, version);
|
||||
QLibraryCleanup* loadedlibraries = qGlobalLibraryList();
|
||||
for (int i = 0; i < loadedlibraries->size(); i++) {
|
||||
QLibraryPrivate* loadedlibrary = loadedlibraries->at(i);
|
||||
if (loadedlibrary->fileName == librarymatch) {
|
||||
if (qt_debug_component()) {
|
||||
qDebug() << "QLibrary: reusing library" << librarymatch;
|
||||
}
|
||||
delete d_ptr;
|
||||
d_ptr = loadedlibrary;
|
||||
loadedlibraries->removeAt(i);
|
||||
return;
|
||||
}
|
||||
}
|
||||
d_ptr->fileName = librarymatch;
|
||||
}
|
||||
|
||||
/*!
|
||||
|
|
Loading…
Add table
Reference in a new issue