summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@qt.io>2022-08-17 13:19:10 +0200
committerMarc Mutz <marc.mutz@qt.io>2022-08-20 21:22:29 +0200
commit817e47fbcde21ab54d353efd647685159cb437a9 (patch)
tree4e3817fad2ad89650bb60bca4957d28fe0232ca4 /src
parent3be99799a675a631c67e05897383af9abbc377b3 (diff)
QBuffer: fix the setData() API re: int/qsizetype
The setData(ptr, n) overload was still taking the size as int. Widen it. Task-number: QTBUG-103525 Change-Id: If1d6d6404d62bbae5e0defea9a2115648c1fd5da Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io> Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/corelib/compat/removed_api.cpp2
-rw-r--r--src/corelib/io/qbuffer.cpp5
-rw-r--r--src/corelib/io/qbuffer.h9
3 files changed, 11 insertions, 5 deletions
diff --git a/src/corelib/compat/removed_api.cpp b/src/corelib/compat/removed_api.cpp
index aa1a496f0f6..42f2ef97ea7 100644
--- a/src/corelib/compat/removed_api.cpp
+++ b/src/corelib/compat/removed_api.cpp
@@ -285,6 +285,8 @@ QT_WARNING_POP
#if QT_CORE_REMOVED_SINCE(6, 5)
+#include "qbuffer.h" // inline removed API
+
#include "qenvironmentvariables.h"
bool qputenv(const char *varName, const QByteArray &value)
diff --git a/src/corelib/io/qbuffer.cpp b/src/corelib/io/qbuffer.cpp
index c244dacab3d..0dcc02459da 100644
--- a/src/corelib/io/qbuffer.cpp
+++ b/src/corelib/io/qbuffer.cpp
@@ -267,12 +267,15 @@ void QBuffer::setData(const QByteArray &data)
}
/*!
- \fn void QBuffer::setData(const char *data, int size)
+ \fn void QBuffer::setData(const char *data, qsizetype size)
\overload
Sets the contents of the internal buffer to be the first \a size
bytes of \a data.
+
+ \note In Qt versions prior to 6.5, this function took the length as
+ an \c{int} parameter, potentially truncating sizes.
*/
/*!
diff --git a/src/corelib/io/qbuffer.h b/src/corelib/io/qbuffer.h
index 96144b63a84..a7c6bde562a 100644
--- a/src/corelib/io/qbuffer.h
+++ b/src/corelib/io/qbuffer.h
@@ -33,7 +33,11 @@ public:
void setBuffer(QByteArray *a);
void setData(const QByteArray &data);
- inline void setData(const char *data, int len);
+#if QT_CORE_REMOVED_SINCE(6, 5) && QT_POINTER_SIZE != 4
+ void setData(const char *data, int len) { setData(data, qsizetype(len)); }
+#endif
+ void setData(const char *data, qsizetype len)
+ { setData(QByteArray(data, len)); }
const QByteArray &data() const;
bool open(OpenMode openMode) override;
@@ -60,9 +64,6 @@ private:
Q_PRIVATE_SLOT(d_func(), void _q_emitSignals())
};
-inline void QBuffer::setData(const char *adata, int alen)
-{ setData(QByteArray(adata, alen)); }
-
QT_END_NAMESPACE
#endif // QBUFFER_H