QNetworkReplyHttpImpl: optimize QRingBuffer allocation
Use QSharedPointer<T>::create(), which co-locates the refcount with the payload in a single memory allocation, instead of QSharedPointer<T>(new T), which causes two allocations. Change-Id: I280caf861b894f87996a9d3ae783943f55d54ff3 Reviewed-by: Peter Hartmann <phartmann@blackberry.com>bb10
parent
ab0d7f5619
commit
6a0d304a2d
|
|
@ -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<QRingBuffer>(new QRingBuffer());
|
||||
d->outgoingDataBuffer = QSharedPointer<QRingBuffer>::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<QRingBuffer>(new QRingBuffer());
|
||||
outgoingDataBuffer = QSharedPointer<QRingBuffer>::create();
|
||||
|
||||
QObject::connect(outgoingData, SIGNAL(readyRead()), q, SLOT(_q_bufferOutgoingData()));
|
||||
QObject::connect(outgoingData, SIGNAL(readChannelFinished()), q, SLOT(_q_bufferOutgoingDataFinished()));
|
||||
|
|
|
|||
Loading…
Reference in New Issue