QtConcurrent: Avoid an allocation in ExceptionHolder if there is no exception to store.
Qt3D hits this several times per frame. Change-Id: Iaadcfbe79f146bd73b36f01325580dc24a10225c Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
This commit is contained in:
parent
7b63c45df5
commit
b5447f9c33
@ -165,7 +165,7 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
ExceptionHolder::ExceptionHolder(QException *exception)
|
ExceptionHolder::ExceptionHolder(QException *exception)
|
||||||
: base(new Base(exception)) {}
|
: base(exception ? new Base(exception) : Q_NULLPTR) {}
|
||||||
|
|
||||||
ExceptionHolder::ExceptionHolder(const ExceptionHolder &other)
|
ExceptionHolder::ExceptionHolder(const ExceptionHolder &other)
|
||||||
: base(other.base)
|
: base(other.base)
|
||||||
@ -181,6 +181,8 @@ ExceptionHolder::~ExceptionHolder()
|
|||||||
|
|
||||||
QException *ExceptionHolder::exception() const
|
QException *ExceptionHolder::exception() const
|
||||||
{
|
{
|
||||||
|
if (!base)
|
||||||
|
return Q_NULLPTR;
|
||||||
return base->exception;
|
return base->exception;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user