diff options
author | Caolán McNamara <caolanm@redhat.com> | 2011-05-23 17:00:28 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2011-05-23 17:00:28 +0100 |
commit | 4b15c7678e0ee4095e82f5336784e8cb7c32c165 (patch) | |
tree | c8f898216e918cf3513a0c718b6a6ebbda41fcd1 /lotuswordpro/source | |
parent | b31d06f2ffd2a578cc887966ec79ac4fe1487877 (diff) |
fix endianness sufficiently to pass unit tests
Diffstat (limited to 'lotuswordpro/source')
-rw-r--r-- | lotuswordpro/source/filter/lwpfilehdr.cxx | 22 | ||||
-rw-r--r-- | lotuswordpro/source/filter/lwpobjhdr.cxx | 36 | ||||
-rw-r--r-- | lotuswordpro/source/filter/lwpobjid.cxx | 10 | ||||
-rw-r--r-- | lotuswordpro/source/filter/lwpsvstream.cxx | 37 | ||||
-rw-r--r-- | lotuswordpro/source/filter/lwpsvstream.hxx | 8 |
5 files changed, 83 insertions, 30 deletions
diff --git a/lotuswordpro/source/filter/lwpfilehdr.cxx b/lotuswordpro/source/filter/lwpfilehdr.cxx index 532aa53166a2..d2d87ac6064c 100644 --- a/lotuswordpro/source/filter/lwpfilehdr.cxx +++ b/lotuswordpro/source/filter/lwpfilehdr.cxx @@ -70,17 +70,25 @@ LwpFileHeader::LwpFileHeader() sal_uInt32 LwpFileHeader::Read(LwpSvStream *pStrm) { sal_uInt32 len = 0; - len += pStrm->Read(&m_nAppRevision, sizeof(m_nAppRevision)); - len += pStrm->Read(&m_nFileRevision, sizeof(m_nFileRevision)); - len += pStrm->Read(&m_nAppReleaseNo, sizeof(m_nAppReleaseNo)); - len += pStrm->Read(&m_nRequiredAppRevision, sizeof(m_nRequiredAppRevision)); - len += pStrm->Read(&m_nRequiredFileRevision, sizeof(m_nRequiredFileRevision)); + *pStrm >> m_nAppRevision; + len += sizeof(m_nAppRevision); + *pStrm >> m_nFileRevision; + len += sizeof(m_nFileRevision); + *pStrm >> m_nAppReleaseNo; + len += sizeof(m_nAppReleaseNo); + *pStrm >> m_nRequiredAppRevision; + len += sizeof(m_nRequiredAppRevision); + *pStrm >> m_nRequiredFileRevision; + len += sizeof(m_nRequiredFileRevision); len += m_cDocumentID.Read(pStrm); if (m_nFileRevision < 0x000B) m_nRootIndexOffset = BAD_OFFSET; else - len += pStrm->Read(&m_nRootIndexOffset, sizeof(m_nRootIndexOffset)); - return(len); + { + *pStrm >> m_nRootIndexOffset; + len += sizeof(m_nRootIndexOffset); + } + return len; } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/lotuswordpro/source/filter/lwpobjhdr.cxx b/lotuswordpro/source/filter/lwpobjhdr.cxx index ef6e253067d1..e2e5e1b33a18 100644 --- a/lotuswordpro/source/filter/lwpobjhdr.cxx +++ b/lotuswordpro/source/filter/lwpobjhdr.cxx @@ -87,11 +87,11 @@ bool LwpObjectHeader::Read(LwpSvStream &rStrm) if ( LwpFileHeader::m_nFileRevision < 0x000B) { - rStrm.Read(&m_nTag, sizeof(m_nTag)); + rStrm >> m_nTag; m_ID.Read(&rStrm); - rStrm.Read(&nVersionID, sizeof(nVersionID)); - rStrm.Read(&nRefCount, sizeof(nRefCount)); - rStrm.Read(&nNextVersionOffset, sizeof(nNextVersionOffset)); + rStrm >> nVersionID; + rStrm >> nRefCount; + rStrm >> nNextVersionOffset; nHeaderSize = sizeof(m_nTag) + m_ID.DiskSize() + sizeof(nVersionID) @@ -101,16 +101,16 @@ bool LwpObjectHeader::Read(LwpSvStream &rStrm) if ((m_nTag == TAG_AMI) || ( LwpFileHeader::m_nFileRevision < 0x0006)) { - rStrm.Read(&nNextVersionID, sizeof(nNextVersionID)); + rStrm >> nNextVersionID; nHeaderSize += sizeof(nNextVersionID); } - rStrm.Read(&m_nSize, sizeof(m_nSize)); + rStrm >> m_nSize; } else { sal_uInt16 VOType = 0; - rStrm.Read(&VOType, sizeof(VOType)); - rStrm.Read(&nFlagBits, sizeof(nFlagBits)); + rStrm >> VOType; + rStrm >> nFlagBits; m_nTag = static_cast<sal_uInt32>(VOType); m_ID.ReadIndexed(&rStrm); @@ -121,19 +121,19 @@ bool LwpObjectHeader::Read(LwpSvStream &rStrm) switch (nFlagBits & VERSION_BITS) { case ONE_BYTE_VERSION: - rStrm.Read(&tmpByte, sizeof(tmpByte)); + rStrm >> tmpByte; nVersionID = static_cast<sal_uInt32>( tmpByte ); nHeaderSize++; break; case TWO_BYTE_VERSION: - rStrm.Read(&tmpShort, sizeof(tmpShort)); + rStrm >> tmpShort; nVersionID = static_cast<sal_uInt32>( tmpShort ); nHeaderSize += 2; break; case FOUR_BYTE_VERSION: - rStrm.Read(&nVersionID, sizeof(nVersionID)); + rStrm >> nVersionID; nHeaderSize += 4; break; case DEFAULT_VERSION: //fall through @@ -145,27 +145,27 @@ bool LwpObjectHeader::Read(LwpSvStream &rStrm) switch (nFlagBits & REFCOUNT_BITS) { case ONE_BYTE_REFCOUNT: - rStrm.Read(&tmpByte, sizeof(tmpByte)); + rStrm >> tmpByte; nRefCount = static_cast<sal_uInt32>( tmpByte ); nHeaderSize++; break; case TWO_BYTE_REFCOUNT: - rStrm.Read(&tmpShort, sizeof(tmpShort)); + rStrm >> tmpShort; nRefCount = static_cast<sal_uInt32>( tmpShort ); nHeaderSize += 2; break; case FOUR_BYTE_REFCOUNT: //through default: - rStrm.Read(&nRefCount, sizeof(nRefCount)); + rStrm >> nRefCount; nHeaderSize += 4; break; } if (nFlagBits & HAS_PREVOFFSET) { - rStrm.Read(&nNextVersionOffset, sizeof(nNextVersionOffset)); + rStrm >> nNextVersionOffset; nHeaderSize += 4; } else @@ -174,20 +174,20 @@ bool LwpObjectHeader::Read(LwpSvStream &rStrm) switch (nFlagBits & SIZE_BITS) { case ONE_BYTE_SIZE: - rStrm.Read(&tmpByte, sizeof(tmpByte)); + rStrm >> tmpByte; m_nSize = static_cast<sal_uInt32>( tmpByte ); nHeaderSize++; break; case TWO_BYTE_SIZE: - rStrm.Read(&tmpShort, sizeof(tmpShort)); + rStrm >> tmpShort; m_nSize = static_cast<sal_uInt32>(tmpShort); nHeaderSize += 2; break; case FOUR_BYTE_SIZE: //go through default: - rStrm.Read(&m_nSize, sizeof(m_nSize)); + rStrm >> m_nSize; nHeaderSize += 4; break; } diff --git a/lotuswordpro/source/filter/lwpobjid.cxx b/lotuswordpro/source/filter/lwpobjid.cxx index e0d2a97830b2..a0c6605369de 100644 --- a/lotuswordpro/source/filter/lwpobjid.cxx +++ b/lotuswordpro/source/filter/lwpobjid.cxx @@ -81,8 +81,8 @@ LwpObjectID::LwpObjectID(sal_uInt32 low, sal_uInt16 high) */ sal_uInt32 LwpObjectID::Read(LwpSvStream *pStrm) { - pStrm->Read(&m_nLow, sizeof(m_nLow)); - pStrm->Read(&m_nHigh, sizeof(m_nHigh)); + *pStrm >> m_nLow; + *pStrm >> m_nHigh; return DiskSize(); } /** @@ -108,7 +108,7 @@ sal_uInt32 LwpObjectID::ReadIndexed(LwpSvStream *pStrm) return Read(pStrm); } - pStrm->Read(&m_nIndex, sizeof(m_nIndex)); + *pStrm >> m_nIndex; if (m_nIndex) { @@ -121,9 +121,9 @@ sal_uInt32 LwpObjectID::ReadIndexed(LwpSvStream *pStrm) } else { - pStrm->Read(&m_nLow, sizeof(m_nLow)); + *pStrm >> m_nLow; } - pStrm->Read(&m_nHigh, sizeof(m_nHigh)); + *pStrm >> m_nHigh; return DiskSizeIndexed(); } diff --git a/lotuswordpro/source/filter/lwpsvstream.cxx b/lotuswordpro/source/filter/lwpsvstream.cxx index 54053d3db185..e59179c6e944 100644 --- a/lotuswordpro/source/filter/lwpsvstream.cxx +++ b/lotuswordpro/source/filter/lwpsvstream.cxx @@ -70,6 +70,43 @@ sal_Int32 LwpSvStream::Read(void* buf, sal_Int32 nBytesToRead) { return m_pStream->Read(buf,nBytesToRead); } + +LwpSvStream& LwpSvStream::operator>>( sal_uInt8& rUInt8 ) +{ + *m_pStream >> rUInt8; + return *this; +} + +LwpSvStream& LwpSvStream::operator>>( sal_uInt16& rUInt16 ) +{ + *m_pStream >> rUInt16; + return *this; +} + +LwpSvStream& LwpSvStream::operator>>( sal_uInt32& rUInt32 ) +{ + *m_pStream >> rUInt32; + return *this; +} + +LwpSvStream& LwpSvStream::operator>>( sal_Int8& rInt8 ) +{ + *m_pStream >> rInt8; + return *this; +} + +LwpSvStream& LwpSvStream::operator>>( sal_Int16& rInt16 ) +{ + *m_pStream >> rInt16; + return *this; +} + +LwpSvStream& LwpSvStream::operator>>( sal_Int32& rInt32 ) +{ + *m_pStream >> rInt32; + return *this; +} + /** * @descr SeekRel in stream */ diff --git a/lotuswordpro/source/filter/lwpsvstream.hxx b/lotuswordpro/source/filter/lwpsvstream.hxx index 4fd0a2054bb3..ff10b13d8ec5 100644 --- a/lotuswordpro/source/filter/lwpsvstream.hxx +++ b/lotuswordpro/source/filter/lwpsvstream.hxx @@ -72,6 +72,14 @@ public: sal_Int64 Tell(); sal_Int64 Seek( sal_Int64 pos ); + LwpSvStream& operator>>( sal_uInt8& rUInt8 ); + LwpSvStream& operator>>( sal_uInt16& rUInt16 ); + LwpSvStream& operator>>( sal_uInt32& rUInt32 ); + + LwpSvStream& operator>>( sal_Int8& rInt8 ); + LwpSvStream& operator>>( sal_Int16& rInt16 ); + LwpSvStream& operator>>( sal_Int32& rInt32 ); + static const sal_uInt32 LWP_STREAM_BASE; LwpSvStream * GetCompressedStream() |