Change HTTPCallback::OnReceiveData to use UniqueBuffer

See: https://github.com/OpenTTD/OpenTTD/issues/11636
This commit is contained in:
Jonathan G Rennison
2023-12-30 19:51:58 +00:00
parent f457f306ce
commit f8085683fb
8 changed files with 23 additions and 37 deletions

View File

@@ -195,11 +195,11 @@ void HttpThread()
HTTPThreadSafeCallback *callback = static_cast<HTTPThreadSafeCallback *>(userdata);
/* Copy the buffer out of CURL. OnReceiveData() will free it when done. */
char *buffer = size * nmemb == 0 ? nullptr : MallocT<char>(size * nmemb);
UniqueBuffer<char> buffer(size * nmemb);
if (buffer != nullptr) {
memcpy(buffer, ptr, size * nmemb);
memcpy(buffer.get(), ptr, size * nmemb);
}
callback->OnReceiveData(buffer, size * nmemb);
callback->OnReceiveData(std::move(buffer));
return size * nmemb;
});
@@ -223,7 +223,7 @@ void HttpThread()
if (res == CURLE_OK) {
Debug(net, 1, "HTTP request succeeded");
request->callback.OnReceiveData(nullptr, 0);
request->callback.OnReceiveData({});
} else {
long status_code = 0;
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &status_code);