diff options
author | Caolán McNamara <caolanm@redhat.com> | 2011-04-11 21:19:54 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2011-04-11 21:41:57 +0100 |
commit | d2a1c2d4cfa51b6ee8a7f38baa258633fae9ec6d (patch) | |
tree | ab712bc1a814bfc15def9990df0896436f346628 /lotuswordpro/source/filter/lwpparaproperty.cxx | |
parent | 538dbe8245fc4644e1868a7df2ba788bcd08caf4 (diff) |
fix what there is to fix
Diffstat (limited to 'lotuswordpro/source/filter/lwpparaproperty.cxx')
-rw-r--r-- | lotuswordpro/source/filter/lwpparaproperty.cxx | 86 |
1 files changed, 35 insertions, 51 deletions
diff --git a/lotuswordpro/source/filter/lwpparaproperty.cxx b/lotuswordpro/source/filter/lwpparaproperty.cxx index b6d88b8d758c..dee3323cfb0c 100644 --- a/lotuswordpro/source/filter/lwpparaproperty.cxx +++ b/lotuswordpro/source/filter/lwpparaproperty.cxx @@ -74,13 +74,19 @@ LwpParaProperty* LwpParaProperty::ReadPropertyList(LwpObjectStream* pFile,LwpObj for(;;) { - pFile->QuickRead(&tag,sizeof(sal_uInt32)); - // Keep reading properties until we hit the end tag - if (tag == TAG_ENDSUBOBJ) + sal_uInt16 nRead; + + nRead = pFile->QuickRead(&tag,sizeof(sal_uInt32)); + // Keep reading properties until we hit the end tag or + // the stream ends + if (tag == TAG_ENDSUBOBJ || nRead != sizeof(sal_uInt32)) break; // Get the length of this property - pFile->QuickRead(&Len,sizeof(sal_uInt16)); + nRead = pFile->QuickRead(&Len,sizeof(sal_uInt16)); + + if (nRead != sizeof(sal_uInt16)) + break; // Create whatever kind of tag we just found switch (tag) @@ -121,21 +127,8 @@ LwpParaProperty* LwpParaProperty::ReadPropertyList(LwpObjectStream* pFile,LwpObj case TAG_PARA_TAB: NewProp = new LwpParaTabRackProperty(pFile); break; -/* -#ifdef KINSOKU - case TAG_PARA_KINSOKU: - NewProp = new CParaKinsokuProperty(pFile); - break; -#endif - case TAG_PARA_PROPLIST: - NewProp = new CParaPropListProperty(pFile,Whole); - break; - - case TAG_PARA_SHOW: - case TAG_PARA_HIDE: - // Ignore these properties -*/ default: + default: pFile->SeekRel(Len); NewProp = NULL; break; @@ -152,24 +145,12 @@ LwpParaProperty* LwpParaProperty::ReadPropertyList(LwpObjectStream* pFile,LwpObj LwpParaAlignProperty::LwpParaAlignProperty(LwpObjectStream* pFile) { -// pFile->SeekRel(3); - LwpObjectID align; - align.ReadIndexed(pFile); - m_pAlignment =static_cast<LwpAlignmentOverride*> - (static_cast<LwpAlignmentPiece*>(align.obj(VO_ALIGNMENTPIECE))->GetOverride()); -/* if(pFile->GetFileRevision() < 0x000b) - { - CAlignmentPieceGuts guts; - CAlignmentPiece::QuickReadGuts(pFile, &guts); - cAlignment = GetPieceManager()->GetAlignmentPiece(&guts); - } - else - { - LwpFoundry* OldFoundry = pFile->GetFoundry(); - pFile->SetFoundry(GetPieceManager()->GetFoundry()); - cAlignment.QuickRead(pFile); - pFile->SetFoundry(OldFoundry); - } */ + LwpObjectID align; + align.ReadIndexed(pFile); + + LwpAlignmentPiece *pAlignmentPiece = dynamic_cast<LwpAlignmentPiece*>(align.obj(VO_ALIGNMENTPIECE)); + m_pAlignment = pAlignmentPiece ? dynamic_cast<LwpAlignmentOverride*>(pAlignmentPiece->GetOverride()) : NULL; + } LwpParaAlignProperty::~LwpParaAlignProperty(void) @@ -183,10 +164,10 @@ sal_uInt32 LwpParaAlignProperty::GetType(void) LwpParaIndentProperty::LwpParaIndentProperty(LwpObjectStream* pFile) { -// LwpObjectID indent; m_aIndentID.ReadIndexed(pFile); - m_pIndent = static_cast<LwpIndentOverride*> - (static_cast<LwpIndentPiece*>(m_aIndentID.obj(VO_INDENTPIECE))->GetOverride()); + + LwpIndentPiece *pIndentPiece = dynamic_cast<LwpIndentPiece*>(m_aIndentID.obj(VO_INDENTPIECE)); + m_pIndent = pIndentPiece ? dynamic_cast<LwpIndentOverride*>(pIndentPiece->GetOverride()) : NULL; } LwpParaIndentProperty::~LwpParaIndentProperty(void) @@ -202,8 +183,9 @@ LwpParaSpacingProperty::LwpParaSpacingProperty(LwpObjectStream* pFile) { LwpObjectID spacing; spacing.ReadIndexed(pFile); - m_pSpacing = static_cast<LwpSpacingOverride*> - (static_cast<LwpSpacingPiece*>(spacing.obj(VO_SPACINGPIECE))->GetOverride()); + + LwpSpacingPiece *pSpacingPiece = dynamic_cast<LwpSpacingPiece*>(spacing.obj(VO_SPACINGPIECE)); + m_pSpacing = pSpacingPiece ? dynamic_cast<LwpSpacingOverride*>(pSpacingPiece->GetOverride()) : NULL; } LwpParaSpacingProperty::~LwpParaSpacingProperty(void) @@ -224,8 +206,8 @@ m_pParaBorderOverride(NULL) if (!aParaBorder.IsNull()) { - m_pParaBorderOverride = static_cast<LwpParaBorderOverride*> - (static_cast<LwpParaBorderPiece*>(aParaBorder.obj())->GetOverride()); + LwpParaBorderPiece *pParaBorderPiece = dynamic_cast<LwpParaBorderPiece*>(aParaBorder.obj()); + m_pParaBorderOverride = pParaBorderPiece ? dynamic_cast<LwpParaBorderOverride*>(pParaBorderPiece->GetOverride()) : NULL; } } @@ -237,8 +219,8 @@ m_pBreaks(NULL) if (!aBreaks.IsNull()) { - m_pBreaks = static_cast<LwpBreaksOverride*> - (static_cast<LwpBreaksPiece*>(aBreaks.obj())->GetOverride()); + LwpBreaksPiece *pBreaksPiece = dynamic_cast<LwpBreaksPiece*>(aBreaks.obj()); + m_pBreaks = pBreaksPiece ? dynamic_cast<LwpBreaksOverride*>(pBreaksPiece->GetOverride()) : NULL; } } @@ -265,9 +247,8 @@ LwpParaNumberingProperty::LwpParaNumberingProperty(LwpObjectStream * pStrm) return; } - m_pNumberingOverride = static_cast<LwpNumberingOverride*> - (static_cast<LwpNumberingPiece*>(aNumberingPiece.obj(VO_NUMBERINGPIECE))->GetOverride()); - + LwpNumberingPiece *pNumberingPiece = dynamic_cast<LwpNumberingPiece*>(aNumberingPiece.obj(VO_NUMBERINGPIECE)); + m_pNumberingOverride = pNumberingPiece ? dynamic_cast<LwpNumberingOverride*>(pNumberingPiece->GetOverride()) : NULL; } //end////////////////////////////////////////////////////////////////////// @@ -275,7 +256,9 @@ LwpParaTabRackProperty::LwpParaTabRackProperty(LwpObjectStream* pFile) { LwpObjectID aTabRack; aTabRack.ReadIndexed(pFile); - m_pTabOverride =static_cast<LwpTabOverride*>(static_cast<LwpTabPiece*>(aTabRack.obj())->GetOverride()); + + LwpTabPiece *pTabPiece = dynamic_cast<LwpTabPiece*>(aTabRack.obj()); + m_pTabOverride = pTabPiece ? dynamic_cast<LwpTabOverride*>(pTabPiece->GetOverride()) : NULL; } LwpParaTabRackProperty::~LwpParaTabRackProperty() @@ -286,8 +269,9 @@ LwpParaBackGroundProperty::LwpParaBackGroundProperty(LwpObjectStream* pFile) { LwpObjectID background; background.ReadIndexed(pFile); - m_pBackground = static_cast<LwpBackgroundOverride*>( - static_cast<LwpBackgroundPiece*>(background.obj())->GetOverride()); + + LwpBackgroundPiece *pBackgroundPiece = dynamic_cast<LwpBackgroundPiece*>(background.obj()); + m_pBackground = pBackgroundPiece ? dynamic_cast<LwpBackgroundOverride*>(pBackgroundPiece->GetOverride()) : NULL; } LwpParaBackGroundProperty::~LwpParaBackGroundProperty() |