# UNDF: UNDF-2026-000001217 --- a/plugins/extensions/resourcemanager/dlg_create_bundle.cpp +++ b/plugins/extensions/resourcemanager/dlg_create_bundle.cpp @@ -185,9 +185,14 @@ bool DlgCreateBundle::putResourcesInTheBundle(KoResourceBundleSP bundle) QList selectedResourcesIds = m_pageResourceChooser->getSelectedResourcesIds(); QStack allResourcesIds; + // Parallel QSet for O(1) dedup — QStack::contains is O(N), causing O(K^2) for K resources. + QSet seenResourceIds; Q_FOREACH(int id, selectedResourcesIds) { allResourcesIds << id; + seenResourceIds.insert(id); } @@ -239,8 +244,9 @@ bool DlgCreateBundle::putResourcesInTheBundle(KoResourceBundleSP bundle) KoResourceSP resource = linkedResource.resource(); if (!resource) { qWarning() << "WARNING: DlgCreateBundle::putResourcesInTheBundle couldn't fetch a linked resource" << linkedResource.signature(); continue; } - if (!allResourcesIds.contains(resource->resourceId())) { + if (!seenResourceIds.contains(resource->resourceId())) { + seenResourceIds.insert(resource->resourceId()); allResourcesIds.append(resource->resourceId()); } }