-rw-r--r-- | qmake/tools/qdatastream.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/qmake/tools/qdatastream.cpp b/qmake/tools/qdatastream.cpp index 9c573c7..51a1448 100644 --- a/qmake/tools/qdatastream.cpp +++ b/qmake/tools/qdatastream.cpp @@ -747,14 +747,22 @@ QDataStream &QDataStream::readBytes( char *&s, uint &l ) QDataStream &QDataStream::readRawBytes( char *s, uint len ) { CHECK_STREAM_PRECOND if ( printable ) { // printable data register Q_INT8 *p = (Q_INT8*)s; + if ( version() < 4 ) { + while ( len-- ) { + Q_INT32 tmp; + *this >> tmp; + *p++ = tmp; + } + } else { while ( len-- ) *this >> *p++; + } } else { // read data char array dev->readBlock( s, len ); } return *this; } @@ -1009,15 +1017,21 @@ QDataStream &QDataStream::writeBytes(const char *s, uint len) */ QDataStream &QDataStream::writeRawBytes( const char *s, uint len ) { CHECK_STREAM_PRECOND if ( printable ) { // write printable + if ( version() < 4 ) { + register char *p = (char *)s; + while ( len-- ) + *this << *p++; + } else { register Q_INT8 *p = (Q_INT8*)s; while ( len-- ) *this << *p++; + } } else { // write data char array dev->writeBlock( s, len ); } return *this; } |