diff options
author | Marc Mutz <marc.mutz@qt.io> | 2022-02-21 16:33:50 +0100 |
---|---|---|
committer | Marc Mutz <marc.mutz@qt.io> | 2022-02-22 18:16:24 +0100 |
commit | 330f2132cade80b588e78971a24fc7d702ff6a3a (patch) | |
tree | c80880adf17a5877f2f745f088090943b40ece69 /src/corelib/text/qstringconverter.cpp | |
parent | 4b8bc8b5bb0b1224206e8dd5526cc8d1e8b6de52 (diff) |
QStringEncoder/Decoder: add missing noexcept
The interesting part is what cannot be noexcept:
- nameForEncoding() and ctor from Encoding: because they don't handle
all valid values of type Encoding, so have a narrow contract
- encodingForHtml(): because it allocates memory (→ QTBUG-101046)
Change-Id: I30cdc19a32537be047e43955e3337e4d6ccc363f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src/corelib/text/qstringconverter.cpp')
-rw-r--r-- | src/corelib/text/qstringconverter.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/corelib/text/qstringconverter.cpp b/src/corelib/text/qstringconverter.cpp index 199e85aaae..84569fccdd 100644 --- a/src/corelib/text/qstringconverter.cpp +++ b/src/corelib/text/qstringconverter.cpp @@ -1699,7 +1699,7 @@ static bool nameMatch(const char *a, const char *b) /*! \internal */ -QStringConverter::QStringConverter(const char *name, Flags f) +QStringConverter::QStringConverter(const char *name, Flags f) noexcept : iface(nullptr), state(f) { auto e = encodingForName(name); @@ -1745,7 +1745,7 @@ QStringConverter::QStringConverter(const char *name, Flags f) Returns an optional encoding for \a name. The optional is empty if the name could not get converted to a valid encoding. */ -std::optional<QStringConverter::Encoding> QStringConverter::encodingForName(const char *name) +std::optional<QStringConverter::Encoding> QStringConverter::encodingForName(const char *name) noexcept { for (int i = 0; i < LastEncoding + 1; ++i) { if (nameMatch(encodingInterfaces[i].name, name)) @@ -1763,7 +1763,8 @@ std::optional<QStringConverter::Encoding> QStringConverter::encodingForName(cons The returned optional is empty, if the encoding is unclear. */ -std::optional<QStringConverter::Encoding> QStringConverter::encodingForData(QByteArrayView data, char16_t expectedFirstCharacter) +std::optional<QStringConverter::Encoding> +QStringConverter::encodingForData(QByteArrayView data, char16_t expectedFirstCharacter) noexcept { // someone set us up the BOM? qsizetype arraySize = data.size(); |