diff --git a/src/corelib/io/qbuffer.cpp b/src/corelib/io/qbuffer.cpp index 0dcc02459d..ba84428275 100644 --- a/src/corelib/io/qbuffer.cpp +++ b/src/corelib/io/qbuffer.cpp @@ -267,8 +267,6 @@ void QBuffer::setData(const QByteArray &data) } /*! - \fn void QBuffer::setData(const char *data, qsizetype size) - \overload Sets the contents of the internal buffer to be the first \a size @@ -277,6 +275,16 @@ void QBuffer::setData(const QByteArray &data) \note In Qt versions prior to 6.5, this function took the length as an \c{int} parameter, potentially truncating sizes. */ +void QBuffer::setData(const char *data, qsizetype size) +{ + Q_D(QBuffer); + if (isOpen()) { + qWarning("QBuffer::setData: Buffer is open"); + return; + } + d->buf->replace(qsizetype(0), d->buf->size(), // ### QByteArray lacks assign(ptr, n) + data, size); +} /*! \reimp diff --git a/src/corelib/io/qbuffer.h b/src/corelib/io/qbuffer.h index a7c6bde562..4cbbfe7c52 100644 --- a/src/corelib/io/qbuffer.h +++ b/src/corelib/io/qbuffer.h @@ -36,8 +36,7 @@ public: #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)); } + void setData(const char *data, qsizetype len); const QByteArray &data() const; bool open(OpenMode openMode) override;