-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 @@ -750,8 +750,16 @@ 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 ); } @@ -1012,9 +1020,15 @@ 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 ); } |