mir ist ein Problem aufgefallen, dass nur eintritt, wenn folgende Bedingungen erfüllt sind:
1. wenn man ein QBitArray verkleinert auf ein nicht durch 8 teilbaren Wert, d.h. es sind überzählige Bits im letzten Byte
2. es mind. 1 dieser überzähligen Bits vorher gesetzt war
3. das QBitArray über ein QDataStream neu gelesen wird
tritt offensichtlich ein Lesefehler auf und man erhält ein QBitArray der Größe 0.
Der folgende Code verdeutlicht dies:
Code: Alles auswählen
QBitArray ba_1(20, true), ba_2;
QBuffer buffer;
buffer.open(QBuffer::ReadWrite);
QDataStream stream(&buffer);
ba_1.resize(ba_1.size()-1);
stream << ba_1;
buffer.seek(0);
stream >> ba_2;
qDebug() << ba_2.size();
fill( false, newSize, oldSize)
Wie gesagt, Probleme treten erst nach dem Auslesen aus einem Stream auf (z.B. aus Datei lesen), sonst sind oben besagte Bits nicht relevant.
Ich hoffe, ich hab nix übersehen - vielen Dank für Hinweise im Vorraus