QString: fix documentation of NUL-termination of unicode(), data(), constData()
(or lack thereof). * `QString::utf16()` reallocates if `*this` has been constructed using `fromRawData()`. * `QString::data()` ensures a writable string, so will detach from raw data. * `QString::unicode()`, `constData()`, and `data() const` do not. They just return `QStringData::data()`, which may point to raw, non-NUL-terminated data. These functions can therefore not possibly have the same behavior, but were documented the same. Fix. Also drop the discussion of operator[](size()), as that, too, was not correct, and anyone who indexes with op[] beyond size() - 1 should not rely on proper behavior. [ChangeLog][QtCore][QString] QString::unicode(), constData() and `data() const` do not return a NUL-terminated string. This was true before, but the documentation claimed the opposite. Change-Id: I1437f57cd02bdf80264e8559608b46aa749c23a8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
91996d4ec4
commit
27aacfb61e
@ -733,7 +733,6 @@ void Widget::sizeFunction()
|
|||||||
int n = str.size(); // n == 5
|
int n = str.size(); // n == 5
|
||||||
str.data()[0]; // returns 'W'
|
str.data()[0]; // returns 'W'
|
||||||
str.data()[4]; // returns 'd'
|
str.data()[4]; // returns 'd'
|
||||||
str.data()[5]; // returns '\0'
|
|
||||||
//! [58]
|
//! [58]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5138,14 +5138,9 @@ QString& QString::fill(QChar ch, int size)
|
|||||||
|
|
||||||
Returns the number of characters in this string.
|
Returns the number of characters in this string.
|
||||||
|
|
||||||
The last character in the string is at position size() - 1. In
|
The last character in the string is at position size() - 1.
|
||||||
addition, QString ensures that the character at position size()
|
|
||||||
is always '\\0', so that you can use the return value of data()
|
|
||||||
and constData() as arguments to functions that expect
|
|
||||||
'\\0'-terminated strings.
|
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
\snippet qstring/main.cpp 58
|
\snippet qstring/main.cpp 58
|
||||||
|
|
||||||
\sa isEmpty(), resize()
|
\sa isEmpty(), resize()
|
||||||
@ -5674,10 +5669,13 @@ int QString::localeAwareCompare_helper(const QChar *data1, int length1,
|
|||||||
/*!
|
/*!
|
||||||
\fn const QChar *QString::unicode() const
|
\fn const QChar *QString::unicode() const
|
||||||
|
|
||||||
Returns a '\\0'-terminated Unicode representation of the string.
|
Returns a Unicode representation of the string.
|
||||||
The result remains valid until the string is modified.
|
The result remains valid until the string is modified.
|
||||||
|
|
||||||
\sa utf16()
|
\note The returned string may not be '\\0'-terminated.
|
||||||
|
Use size() to determine the length of the array.
|
||||||
|
|
||||||
|
\sa utf16(), fromRawData()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@ -8077,7 +8075,10 @@ bool QString::isRightToLeft() const
|
|||||||
|
|
||||||
Returns a pointer to the data stored in the QString. The pointer
|
Returns a pointer to the data stored in the QString. The pointer
|
||||||
can be used to access and modify the characters that compose the
|
can be used to access and modify the characters that compose the
|
||||||
string. For convenience, the data is '\\0'-terminated.
|
string.
|
||||||
|
|
||||||
|
Unlike constData() and unicode(), the returned data is always
|
||||||
|
'\\0'-terminated.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
@ -8093,18 +8094,25 @@ bool QString::isRightToLeft() const
|
|||||||
/*! \fn const QChar *QString::data() const
|
/*! \fn const QChar *QString::data() const
|
||||||
|
|
||||||
\overload
|
\overload
|
||||||
|
|
||||||
|
\note The returned string may not be '\\0'-terminated.
|
||||||
|
Use size() to determine the length of the array.
|
||||||
|
|
||||||
|
\sa fromRawData()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn const QChar *QString::constData() const
|
/*! \fn const QChar *QString::constData() const
|
||||||
|
|
||||||
Returns a pointer to the data stored in the QString. The pointer
|
Returns a pointer to the data stored in the QString. The pointer
|
||||||
can be used to access the characters that compose the string. For
|
can be used to access the characters that compose the string.
|
||||||
convenience, the data is '\\0'-terminated.
|
|
||||||
|
|
||||||
Note that the pointer remains valid only as long as the string is
|
Note that the pointer remains valid only as long as the string is
|
||||||
not modified.
|
not modified.
|
||||||
|
|
||||||
\sa data(), operator[]()
|
\note The returned string may not be '\\0'-terminated.
|
||||||
|
Use size() to determine the length of the array.
|
||||||
|
|
||||||
|
\sa data(), operator[](), fromRawData()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*! \fn void QString::push_front(const QString &other)
|
/*! \fn void QString::push_front(const QString &other)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user