Darrell Anderson 12 years ago
commit da067173fd

@ -544,7 +544,10 @@ QDataStream &QDataStream::operator>>( Q_INT8 &i )
i = (buf[2] & 0x07)+((buf[1] & 0x07) << 3)+((buf[0] & 0x07) << 6); i = (buf[2] & 0x07)+((buf[1] & 0x07) << 3)+((buf[0] & 0x07) << 6);
} }
} else { // data or text } else { // data or text
i = (Q_INT8)dev->getch(); int ret = dev->getch();
if (ret >= 0) {
i = (Q_INT8)ret;
}
} }
return *this; return *this;
} }
@ -574,9 +577,10 @@ QDataStream &QDataStream::operator>>( Q_INT16 &i )
} else { // swap bytes } else { // swap bytes
register uchar *p = (uchar *)(&i); register uchar *p = (uchar *)(&i);
char b[2]; char b[2];
dev->readBlock( b, 2 ); if (dev->readBlock( b, 2 ) >= 2) {
*p++ = b[1]; *p++ = b[1];
*p = b[0]; *p = b[0];
}
} }
return *this; return *this;
} }
@ -606,11 +610,12 @@ QDataStream &QDataStream::operator>>( Q_INT32 &i )
} else { // swap bytes } else { // swap bytes
uchar *p = (uchar *)(&i); uchar *p = (uchar *)(&i);
char b[4]; char b[4];
dev->readBlock( b, 4 ); if (dev->readBlock( b, 4 ) >= 4) {
*p++ = b[3]; *p++ = b[3];
*p++ = b[2]; *p++ = b[2];
*p++ = b[1]; *p++ = b[1];
*p = b[0]; *p = b[0];
}
} }
return *this; return *this;
} }
@ -643,15 +648,16 @@ QDataStream &QDataStream::operator>>( Q_INT64 &i )
} else { // swap bytes } else { // swap bytes
uchar *p = (uchar *)(&i); uchar *p = (uchar *)(&i);
char b[8]; char b[8];
dev->readBlock( b, 8 ); if (dev->readBlock( b, 8 ) >= 8) {
*p++ = b[7]; *p++ = b[7];
*p++ = b[6]; *p++ = b[6];
*p++ = b[5]; *p++ = b[5];
*p++ = b[4]; *p++ = b[4];
*p++ = b[3]; *p++ = b[3];
*p++ = b[2]; *p++ = b[2];
*p++ = b[1]; *p++ = b[1];
*p = b[0]; *p = b[0];
}
} }
return *this; return *this;
} }
@ -683,9 +689,11 @@ QDataStream &QDataStream::operator>>( Q_LONG &i )
} else { // swap bytes } else { // swap bytes
register uchar *p = (uchar *)(&i); register uchar *p = (uchar *)(&i);
char b[sizeof(Q_LONG)]; char b[sizeof(Q_LONG)];
dev->readBlock( b, sizeof(Q_LONG) ); if (dev->readBlock( b, sizeof(Q_LONG) ) >= (int)sizeof(Q_LONG)) {
for ( int j = sizeof(Q_LONG); j; ) for ( int j = sizeof(Q_LONG); j; ) {
*p++ = b[--j]; *p++ = b[--j];
}
}
} }
return *this; return *this;
} }
@ -724,11 +732,12 @@ QDataStream &QDataStream::operator>>( float &f )
} else { // swap bytes } else { // swap bytes
uchar *p = (uchar *)(&f); uchar *p = (uchar *)(&f);
char b[4]; char b[4];
dev->readBlock( b, 4 ); if (dev->readBlock( b, 4 ) >= 4) {
*p++ = b[3]; *p++ = b[3];
*p++ = b[2]; *p++ = b[2];
*p++ = b[1]; *p++ = b[1];
*p = b[0]; *p = b[0];
}
} }
return *this; return *this;
} }
@ -752,15 +761,16 @@ QDataStream &QDataStream::operator>>( double &f )
} else { // swap bytes } else { // swap bytes
register uchar *p = (uchar *)(&f); register uchar *p = (uchar *)(&f);
char b[8]; char b[8];
dev->readBlock( b, 8 ); if (dev->readBlock( b, 8 ) >= 8) {
*p++ = b[7]; *p++ = b[7];
*p++ = b[6]; *p++ = b[6];
*p++ = b[5]; *p++ = b[5];
*p++ = b[4]; *p++ = b[4];
*p++ = b[3]; *p++ = b[3];
*p++ = b[2]; *p++ = b[2];
*p++ = b[1]; *p++ = b[1];
*p = b[0]; *p = b[0];
}
} }
return *this; return *this;
} }

Loading…
Cancel
Save