Skip to content

Commit 37298e8

Browse files
committed
Fix a memory leak.
* Creating a new request on each redirect would leak memory since we actually reuse the same request now. So modify the existing object instead.
1 parent 636fdf5 commit 37298e8

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

Source/WebCore/platform/network/haiku/BUrlProtocolHandler.cpp

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -410,7 +410,7 @@ void BUrlProtocolHandler::AuthenticationNeeded(BHttpRequest* request, ResourceRe
410410
return;
411411
}
412412

413-
ResourceRequest* nextRequest = new ResourceRequest(m_resourceHandle->firstRequest());
413+
ResourceRequest& currentRequest = m_resourceHandle->firstRequest();
414414

415415
Credential proposedCredential(d->m_user, d->m_pass, CredentialPersistenceForSession);
416416

@@ -424,8 +424,8 @@ void BUrlProtocolHandler::AuthenticationNeeded(BHttpRequest* request, ResourceRe
424424
// Handle this just like redirects.
425425
m_redirected = true;
426426

427-
nextRequest->setCredentials(d->m_user.utf8().data(), d->m_pass.utf8().data());
428-
client->willSendRequest(m_resourceHandle, *nextRequest, response);
427+
currentRequest.setCredentials(d->m_user.utf8().data(), d->m_pass.utf8().data());
428+
client->willSendRequest(m_resourceHandle, currentRequest, response);
429429
} else {
430430
client->didFinishLoading(m_resourceHandle, 0);
431431
}
@@ -508,10 +508,11 @@ void BUrlProtocolHandler::HeadersReceived(BUrlRequest* /*caller*/)
508508
return;
509509
}
510510

511-
ResourceRequest* nextRequest = new ResourceRequest(m_resourceHandle->firstRequest());
512-
nextRequest->setURL(location);
511+
// Notify the client that we are redirecting.
512+
ResourceRequest& request = m_resourceHandle->firstRequest();
513+
request.setURL(location);
513514

514-
client->willSendRequest(m_resourceHandle, *nextRequest, response);
515+
client->willSendRequest(m_resourceHandle, request, response);
515516
} else {
516517
client->didReceiveResponse(m_resourceHandle, response);
517518
}

0 commit comments

Comments
 (0)