From 6a0d304a2dbbcabcfb570ec6508f6324ce9906ad Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Tue, 11 Mar 2014 23:17:56 +0100 Subject: QNetworkReplyHttpImpl: optimize QRingBuffer allocation Use QSharedPointer::create(), which co-locates the refcount with the payload in a single memory allocation, instead of QSharedPointer(new T), which causes two allocations. Change-Id: I280caf861b894f87996a9d3ae783943f55d54ff3 Reviewed-by: Peter Hartmann --- src/network/access/qnetworkreplyhttpimpl.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/network/access') diff --git a/src/network/access/qnetworkreplyhttpimpl.cpp b/src/network/access/qnetworkreplyhttpimpl.cpp index de4c8d0964..e29caa9887 100644 --- a/src/network/access/qnetworkreplyhttpimpl.cpp +++ b/src/network/access/qnetworkreplyhttpimpl.cpp @@ -194,7 +194,7 @@ QNetworkReplyHttpImpl::QNetworkReplyHttpImpl(QNetworkAccessManager* const manage if (d->synchronous && outgoingData) { // The synchronous HTTP is a corner case, we will put all upload data in one big QByteArray in the outgoingDataBuffer. // Yes, this is not the most efficient thing to do, but on the other hand synchronous XHR needs to die anyway. - d->outgoingDataBuffer = QSharedPointer(new QRingBuffer()); + d->outgoingDataBuffer = QSharedPointer::create(); qint64 previousDataSize = 0; do { previousDataSize = d->outgoingDataBuffer->size(); @@ -1715,7 +1715,7 @@ void QNetworkReplyHttpImplPrivate::_q_bufferOutgoingData() if (!outgoingDataBuffer) { // first call, create our buffer - outgoingDataBuffer = QSharedPointer(new QRingBuffer()); + outgoingDataBuffer = QSharedPointer::create(); QObject::connect(outgoingData, SIGNAL(readyRead()), q, SLOT(_q_bufferOutgoingData())); QObject::connect(outgoingData, SIGNAL(readChannelFinished()), q, SLOT(_q_bufferOutgoingDataFinished())); -- cgit v1.2.3