mirror of
https://github.com/overte-org/overte.git
synced 2025-04-25 12:53:03 +02:00
Merge pull request #4117 from Atlante45/dm_update
Drop DM ref before creating new object
This commit is contained in:
commit
b2c5847d9b
1 changed files with 6 additions and 4 deletions
|
@ -83,11 +83,13 @@ template <typename T, typename ...Args>
|
|||
QSharedPointer<T> DependencyManager::set(Args&&... args) {
|
||||
static size_t hashCode = _manager.getHashCode<T>();
|
||||
|
||||
QSharedPointer<T> instance(new T(args...), &T::customDeleter);
|
||||
QSharedPointer<Dependency> storedInstance = qSharedPointerCast<Dependency>(instance);
|
||||
_manager.safeGet(hashCode).swap(storedInstance);
|
||||
QSharedPointer<Dependency>& instance = _manager.safeGet(hashCode);
|
||||
instance.clear(); // Clear instance before creation of new one to avoid edge cases
|
||||
QSharedPointer<T> newInstance(new T(args...), &T::customDeleter);
|
||||
QSharedPointer<Dependency> storedInstance = qSharedPointerCast<Dependency>(newInstance);
|
||||
instance.swap(storedInstance);
|
||||
|
||||
return instance;
|
||||
return newInstance;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
|
|
Loading…
Reference in a new issue