[devel] Странности с QT
Paul Wolneykien
manowar на altlinux.org
Ср Ноя 2 22:10:11 UTC 2011
Всем привет.
Вопрос, прежде всего, к специалистам по QT.
На днях боролся с неполадками в Scribus
(http://bugs.scribus.net/view.php?id=10355). Дело оказалось в
преобразовании чисел, а при отладке я обнаружил, как мне кажется,
странное поведение QByteArray, QString либо QChar — точно сказать не могу:
(gdb) p bb->d->data
$1 = 0x8d83fb0 " "
(gdb) n
44 bb = bb.insert(0, in.at(3).cell());
(gdb) p bb->d->data
$2 = 0x9651068 " \305 "
(gdb) n
45 bb = bb.insert(1, in.at(2).cell());
(gdb) p bb->d->data
$3 = 0x9651068 " \320 \305 "
(gdb) n
46 bb = bb.insert(2, in.at(1).cell());
(gdb) p bb->d->data
$4 = 0x9651068 " \323 \320 \305 "
(gdb) n
58 bb = bb.insert(3, in.at(0).cell());
(gdb) p bb->d->data
$5 = 0x9651068 "\306 \323 \320 \305 "
Как видно, в bb добавляются не только байты из входной строки, но и
пробелы. Судя по последующему коду (http://clck.ru/OA-n) автор не
предполагал их наличия.
Проблему я решил, избавившись от использования как insert, так и
QString (http://clck.ru/OA0M). Однако интересно, является ли такое
поведение insert нормальным? Подумал, вдруг эта проблема затрагивает не
только Scribus.
Паша.
Подробная информация о списке рассылки Devel