QSslEllipticCurve: remove a copy when setting the curves
The only reason for copying QSslEllipticCurves into a temporary array would be to be extra-pedantic about type safety, but in the end, we can simply force a cast and remove the copy. Change-Id: Ice8a036fe4b79ba438ce83b5eacf6158eb3f0ce7 Reviewed-by: Richard J. Moore <rich@kde.org>
This commit is contained in:
parent
e06f4c2558
commit
2e271795e7
@ -340,11 +340,12 @@ init_context:
|
|||||||
#if OPENSSL_VERSION_NUMBER >= 0x10002000L && !defined(OPENSSL_NO_EC)
|
#if OPENSSL_VERSION_NUMBER >= 0x10002000L && !defined(OPENSSL_NO_EC)
|
||||||
// Set the curves to be used
|
// Set the curves to be used
|
||||||
if (q_SSLeay() >= 0x10002000L) {
|
if (q_SSLeay() >= 0x10002000L) {
|
||||||
QVarLengthArray<int, 32> curves;
|
// SSL_CTX_ctrl wants a non-const pointer as last argument,
|
||||||
foreach (const QSslEllipticCurve curve, qcurves)
|
// but let's avoid a copy into a temporary array
|
||||||
curves.append(curve.id);
|
if (!q_SSL_CTX_ctrl(sslContext->ctx,
|
||||||
|
SSL_CTRL_SET_CURVES,
|
||||||
if (!q_SSL_CTX_ctrl(sslContext->ctx, SSL_CTRL_SET_CURVES, curves.size(), curves.data())) {
|
qcurves.size(),
|
||||||
|
const_cast<int *>(reinterpret_cast<const int *>(qcurves.data())))) {
|
||||||
sslContext->errorStr = QSslSocket::tr("Error when setting the elliptic curves (%1)").arg(QSslSocketBackendPrivate::getErrorsFromOpenSsl());
|
sslContext->errorStr = QSslSocket::tr("Error when setting the elliptic curves (%1)").arg(QSslSocketBackendPrivate::getErrorsFromOpenSsl());
|
||||||
sslContext->errorCode = QSslError::UnspecifiedError;
|
sslContext->errorCode = QSslError::UnspecifiedError;
|
||||||
return sslContext;
|
return sslContext;
|
||||||
|
@ -82,7 +82,6 @@ private:
|
|||||||
friend Q_DECL_CONSTEXPR uint qHash(QSslEllipticCurve curve, uint seed) Q_DECL_NOTHROW
|
friend Q_DECL_CONSTEXPR uint qHash(QSslEllipticCurve curve, uint seed) Q_DECL_NOTHROW
|
||||||
{ return qHash(curve.id, seed); }
|
{ return qHash(curve.id, seed); }
|
||||||
|
|
||||||
friend class QSslContext;
|
|
||||||
friend class QSslSocketPrivate;
|
friend class QSslSocketPrivate;
|
||||||
friend class QSslSocketBackendPrivate;
|
friend class QSslSocketBackendPrivate;
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user