summaryrefslogtreecommitdiffstats
path: root/src/network/access/qhttpthreaddelegate.cpp
diff options
context:
space:
mode:
authorMårten Nordheim <marten.nordheim@qt.io>2023-10-03 13:13:16 +0200
committerMårten Nordheim <marten.nordheim@qt.io>2023-10-07 00:10:32 +0200
commit51c812af0747573ccf07fc232d860170c4ba2877 (patch)
tree58fc61fdb9a74b19a9534a3e9e07cc9dc9e3fa92 /src/network/access/qhttpthreaddelegate.cpp
parent72d51f1c42b83c26d15cb626f1b22905fbbea474 (diff)
QHttpThreadDelegate: use new(std::nothrow) instead of try..catch
We usually compile without exceptions, so the try..catch is a noop. So, if the `new` fails we would crash (or get UB) anyway. Instead of that, use the nothrow version of `new` and check the result. Pick-to: 6.6 6.5 Change-Id: I1902b717c70afcc44c1f3237370aae346262452a Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Diffstat (limited to 'src/network/access/qhttpthreaddelegate.cpp')
-rw-r--r--src/network/access/qhttpthreaddelegate.cpp13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/network/access/qhttpthreaddelegate.cpp b/src/network/access/qhttpthreaddelegate.cpp
index 261a1eccd6..b0ae0dcf44 100644
--- a/src/network/access/qhttpthreaddelegate.cpp
+++ b/src/network/access/qhttpthreaddelegate.cpp
@@ -584,14 +584,11 @@ void QHttpThreadDelegate::headerChangedSlot()
// Is using a zerocopy buffer allowed by user and possible with this reply?
if (httpReply->supportsUserProvidedDownloadBuffer()
&& (downloadBufferMaximumSize > 0) && (httpReply->contentLength() <= downloadBufferMaximumSize)) {
- QT_TRY {
- char *buf = new char[httpReply->contentLength()]; // throws if allocation fails
- if (buf) {
- downloadBuffer = QSharedPointer<char>(buf, [](auto p) { delete[] p; });
- httpReply->setUserProvidedDownloadBuffer(buf);
- }
- } QT_CATCH(const std::bad_alloc &) {
- // in out of memory situations, don't use downloadbuffer.
+ char *buf = new (std::nothrow) char[httpReply->contentLength()];
+ // in out of memory situations, don't use downloadBuffer.
+ if (buf) {
+ downloadBuffer = QSharedPointer<char>(buf, [](auto p) { delete[] p; });
+ httpReply->setUserProvidedDownloadBuffer(buf);
}
}