summaryrefslogtreecommitdiff
path: root/lotuswordpro/source/filter/lwpparaproperty.cxx
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2011-04-11 21:19:54 +0100
committerCaolán McNamara <caolanm@redhat.com>2011-04-11 21:41:57 +0100
commitd2a1c2d4cfa51b6ee8a7f38baa258633fae9ec6d (patch)
treeab712bc1a814bfc15def9990df0896436f346628 /lotuswordpro/source/filter/lwpparaproperty.cxx
parent538dbe8245fc4644e1868a7df2ba788bcd08caf4 (diff)
fix what there is to fix
Diffstat (limited to 'lotuswordpro/source/filter/lwpparaproperty.cxx')
-rw-r--r--lotuswordpro/source/filter/lwpparaproperty.cxx86
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()