icecat: add release icecat-140.10.1-1gnu1 for ecne

This commit is contained in:
Ark74 2026-05-04 16:58:41 -06:00
parent a5f93cb214
commit ff85d7c623
1256 changed files with 63469 additions and 24141 deletions

View file

@ -810,7 +810,9 @@ std::shared_ptr<EglDisplay> EglDisplay::Create(
const auto ret =
std::make_shared<EglDisplay>(PrivateUseOnly{}, lib, display, isWarp);
lib.mActiveDisplays.insert({display, ret});
// Insert if there is no existing display entry, or assign if there is an
// expired weak_ptr that failed to lock above and was awaiting removal.
lib.mActiveDisplays.insert_or_assign(display, ret);
return ret;
}
@ -858,6 +860,13 @@ EglDisplay::EglDisplay(const PrivateUseOnly&, GLLibraryEGL& lib,
EglDisplay::~EglDisplay() {
StaticMutexAutoLock lock(GLLibraryEGL::sMutex);
// EglDisplay is being destructed, so its weak_ptr should be expired. If there
// is an entry that is still live, it means a new EGLDisplay was subsequently
// created that needs to use this display, so avoid terminating it.
const auto itr = mLib->mActiveDisplays.find(mDisplay);
if (itr != mLib->mActiveDisplays.end() && !itr->second.expired()) {
return;
}
fTerminate();
mLib->mActiveDisplays.erase(mDisplay);
}