diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2011-10-28 09:09:52 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2011-10-28 09:09:52 +0200 |
commit | dfb1e0a293eb73dca115b6cef8edff8e802c9cb7 (patch) | |
tree | fd67d72b0077b289bb25d4c2a4a8956b2c6e535a | |
parent | 7100bf740c62df84e25afc60c5f5b8b34c441362 (diff) |
Don't use QByteArray replace() overload that was only added in Qt 4.7
The bad thing is that another overload, added in Qt 4.5, was silently
used in the 4.5-4.6 versions which predictably did the wrong thing.
-rw-r--r-- | odb/qt/basic/mysql/qbyte-array-traits.hxx | 8 | ||||
-rw-r--r-- | odb/qt/basic/pgsql/qbyte-array-traits.hxx | 8 | ||||
-rw-r--r-- | odb/qt/basic/sqlite/qbyte-array-traits.hxx | 8 |
3 files changed, 21 insertions, 3 deletions
diff --git a/odb/qt/basic/mysql/qbyte-array-traits.hxx b/odb/qt/basic/mysql/qbyte-array-traits.hxx index 52e620c..a80187d 100644 --- a/odb/qt/basic/mysql/qbyte-array-traits.hxx +++ b/odb/qt/basic/mysql/qbyte-array-traits.hxx @@ -36,7 +36,13 @@ namespace odb if (is_null) v = QByteArray (); else - v.replace (0, v.size (), b.data (), static_cast<int> (n)); + { + // Note that we cannot use replace() here since a suitable + // overload was only added in Qt 4.7. + // + v.resize (static_cast<int> (n)); + std::memcpy (v.data (), b.data (), n); + } } static void diff --git a/odb/qt/basic/pgsql/qbyte-array-traits.hxx b/odb/qt/basic/pgsql/qbyte-array-traits.hxx index cf0477e..8491794 100644 --- a/odb/qt/basic/pgsql/qbyte-array-traits.hxx +++ b/odb/qt/basic/pgsql/qbyte-array-traits.hxx @@ -36,7 +36,13 @@ namespace odb if (is_null) v = QByteArray (); else - v.replace (0, v.size (), b.data (), static_cast<int> (n)); + { + // Note that we cannot use replace() here since a suitable + // overload was only added in Qt 4.7. + // + v.resize (static_cast<int> (n)); + std::memcpy (v.data (), b.data (), n); + } } static void diff --git a/odb/qt/basic/sqlite/qbyte-array-traits.hxx b/odb/qt/basic/sqlite/qbyte-array-traits.hxx index 0d1437e..9c563f3 100644 --- a/odb/qt/basic/sqlite/qbyte-array-traits.hxx +++ b/odb/qt/basic/sqlite/qbyte-array-traits.hxx @@ -36,7 +36,13 @@ namespace odb if (is_null) v = QByteArray (); else - v.replace (0, v.size (), b.data (), static_cast<int> (n)); + { + // Note that we cannot use replace() here since a suitable + // overload was only added in Qt 4.7. + // + v.resize (static_cast<int> (n)); + std::memcpy (v.data (), b.data (), n); + } } static void |