diff options
author | Caolán McNamara <caolanm@redhat.com> | 2011-05-22 16:38:54 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2011-05-22 16:38:54 +0100 |
commit | bd32449e0b8016e9d4e2b14848780f4a641394f2 (patch) | |
tree | 48d984fd0ff6652acbfbd5e15b3c03584e6a0a67 /lotuswordpro/source/filter/lwpfrib.cxx | |
parent | can't correctly use auto_ptr on new[] allocated memory (diff) | |
download | core-bd32449e0b8016e9d4e2b14848780f4a641394f2.tar.gz core-bd32449e0b8016e9d4e2b14848780f4a641394f2.zip |
fix up endianness of lowhanging QuickReads
Diffstat (limited to 'lotuswordpro/source/filter/lwpfrib.cxx')
-rw-r--r-- | lotuswordpro/source/filter/lwpfrib.cxx | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/lotuswordpro/source/filter/lwpfrib.cxx b/lotuswordpro/source/filter/lwpfrib.cxx index 3deedc897777..a28341690524 100644 --- a/lotuswordpro/source/filter/lwpfrib.cxx +++ b/lotuswordpro/source/filter/lwpfrib.cxx @@ -339,11 +339,11 @@ void LwpFrib::ReadModifiers(LwpObjectStream* pObjStrm,ModifierInfo* pModInfo) { for(;;) { - sal_uInt8 Modifier(0); - sal_uInt8 len(0); + bool bFailure; // Get the modifier type - if (pObjStrm->QuickRead(&Modifier, sizeof(Modifier)) != sizeof(Modifier)) + sal_uInt8 Modifier = pObjStrm->QuickReaduInt8(&bFailure); + if (bFailure) break; // Stop when we hit the last modifier @@ -351,19 +351,20 @@ void LwpFrib::ReadModifiers(LwpObjectStream* pObjStrm,ModifierInfo* pModInfo) break; // Get the modifier length - if (pObjStrm->QuickRead(&len, sizeof(len)) != sizeof(len)) + sal_uInt8 len = pObjStrm->QuickReaduInt8(&bFailure); + if (bFailure) break; switch (Modifier) { case FRIB_MTAG_FONT: - if (len > sizeof(pModInfo->FontID)) + if (len != sizeof(pModInfo->FontID)) { OSL_FAIL("FRIB_MTAG_FONT entry wrong size\n"); pObjStrm->SeekRel(len); } else - pObjStrm->QuickRead(&pModInfo->FontID,len); + pModInfo->FontID = pObjStrm->QuickReaduInt32(); break; case FRIB_MTAG_CHARSTYLE: pModInfo->HasCharStyle = sal_True; @@ -374,13 +375,13 @@ void LwpFrib::ReadModifiers(LwpObjectStream* pObjStrm,ModifierInfo* pModInfo) pModInfo->Language.Read(pObjStrm); break; case FRIB_MTAG_CODEPAGE: - if (len > sizeof(pModInfo->CodePage)) + if (len != sizeof(pModInfo->CodePage)) { OSL_FAIL("FRIB_MTAG_CODEPAGE entry wrong size\n"); pObjStrm->SeekRel(len); } else - pObjStrm->QuickRead(&pModInfo->CodePage,len); + pModInfo->CodePage = pObjStrm->QuickReaduInt16(); break; case FRIB_MTAG_ATTRIBUTE: pModInfo->aTxtAttrOverride.Read(pObjStrm); |