summaryrefslogtreecommitdiff
path: root/lotuswordpro/source
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2011-05-23 17:00:28 +0100
committerCaolán McNamara <caolanm@redhat.com>2011-05-23 17:00:28 +0100
commit4b15c7678e0ee4095e82f5336784e8cb7c32c165 (patch)
treec8f898216e918cf3513a0c718b6a6ebbda41fcd1 /lotuswordpro/source
parentb31d06f2ffd2a578cc887966ec79ac4fe1487877 (diff)
fix endianness sufficiently to pass unit tests
Diffstat (limited to 'lotuswordpro/source')
-rw-r--r--lotuswordpro/source/filter/lwpfilehdr.cxx22
-rw-r--r--lotuswordpro/source/filter/lwpobjhdr.cxx36
-rw-r--r--lotuswordpro/source/filter/lwpobjid.cxx10
-rw-r--r--lotuswordpro/source/filter/lwpsvstream.cxx37
-rw-r--r--lotuswordpro/source/filter/lwpsvstream.hxx8
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()