summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2018-07-30 09:33:03 +0100
committerCaolán McNamara <caolanm@redhat.com>2018-07-30 12:05:49 +0200
commit397c2e67e6614f87e408432f63956f507a64023d (patch)
treef6bef68a54ab380d47930dab9771c6643b400d0c
parent4219a1f8e44aaa44a0baf30af9ebdcbd709f0a56 (diff)
workaround msvc compiler warning
warning C4315: 'WW8_FFN': 'this' pointer for member 'WW8_FFN::sFontname' may not be aligned 8 as expected by the constructor Change-Id: Ic23b79c7da5f435f72cf3d1d3052d7a6926e5dce Reviewed-on: https://gerrit.libreoffice.org/58303 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--sw/source/filter/ww8/ww8par2.cxx2
-rw-r--r--sw/source/filter/ww8/ww8par6.cxx10
-rw-r--r--sw/source/filter/ww8/ww8scan.cxx64
-rw-r--r--sw/source/filter/ww8/ww8struc.hxx3
4 files changed, 40 insertions, 39 deletions
diff --git a/sw/source/filter/ww8/ww8par2.cxx b/sw/source/filter/ww8/ww8par2.cxx
index 3fcb7ad116b9..7fb6ee18862f 100644
--- a/sw/source/filter/ww8/ww8par2.cxx
+++ b/sw/source/filter/ww8/ww8par2.cxx
@@ -594,7 +594,7 @@ void SwWW8ImplReader::SetAnlvStrings(SwNumFormat &rNum, WW8_ANLV const &rAV,
rtl_TextEncoding eCharSet = m_eStructCharSet;
const WW8_FFN* pF = m_xFonts->GetFont(SVBT16ToShort(rAV.ftc)); // FontInfo
- bool bListSymbol = pF && ( pF->chs == 2 ); // Symbol/WingDings/...
+ bool bListSymbol = pF && ( pF->aFFNBase.chs == 2 ); // Symbol/WingDings/...
OUString sText;
sal_uInt32 nLen = rAV.cbTextBefore + rAV.cbTextAfter;
diff --git a/sw/source/filter/ww8/ww8par6.cxx b/sw/source/filter/ww8/ww8par6.cxx
index 7abf127ec0fd..4513d19bd177 100644
--- a/sw/source/filter/ww8/ww8par6.cxx
+++ b/sw/source/filter/ww8/ww8par6.cxx
@@ -3563,20 +3563,20 @@ bool SwWW8ImplReader::GetFontParams( sal_uInt16 nFCode, FontFamily& reFamily,
rName = pF->sFontname;
// pF->prg : Pitch
- rePitch = ePitchA[pF->prg];
+ rePitch = ePitchA[pF->aFFNBase.prg];
// pF->chs: Charset
- if( 77 == pF->chs ) // Mac font in Mac Charset or
+ if( 77 == pF->aFFNBase.chs ) // Mac font in Mac Charset or
reCharSet = m_eTextCharSet; // translated to ANSI charset
else
{
// #i52786#, for word 67 we'll assume that ANSI is basically invalid,
// might be true for (above) mac as well, but would need a mac example
// that exercises this to be sure
- if (m_bVer67 && pF->chs == 0)
+ if (m_bVer67 && pF->aFFNBase.chs == 0)
reCharSet = RTL_TEXTENCODING_DONTKNOW;
else
- reCharSet = rtl_getTextEncodingFromWindowsCharset( pF->chs );
+ reCharSet = rtl_getTextEncodingFromWindowsCharset(pF->aFFNBase.chs);
}
// make sure Font Family Code is set correctly
@@ -3605,7 +3605,7 @@ bool SwWW8ImplReader::GetFontParams( sal_uInt16 nFCode, FontFamily& reFamily,
}
else
{
- reFamily = eFamilyA[pF->ff];
+ reFamily = eFamilyA[pF->aFFNBase.ff];
}
return true;
diff --git a/sw/source/filter/ww8/ww8scan.cxx b/sw/source/filter/ww8/ww8scan.cxx
index c581f22385c6..eafd78c352b7 100644
--- a/sw/source/filter/ww8/ww8scan.cxx
+++ b/sw/source/filter/ww8/ww8scan.cxx
@@ -7247,17 +7247,17 @@ WW8Fonts::WW8Fonts( SvStream& rSt, WW8Fib const & rFib )
{
if (!readU8(
pVer2, offsetof(WW8_FFN_BASE, cbFfnM1), pEnd,
- &p->cbFfnM1))
+ &p->aFFNBase.cbFfnM1))
{
break;
}
- p->prg = 0;
- p->fTrueType = 0;
- p->ff = 0;
+ p->aFFNBase.prg = 0;
+ p->aFFNBase.fTrueType = 0;
+ p->aFFNBase.ff = 0;
- if (!(readU8(pVer2, 1, pEnd, &p->wWeight)
- && readU8(pVer2, 2, pEnd, &p->chs)))
+ if (!(readU8(pVer2, 1, pEnd, &p->aFFNBase.wWeight)
+ && readU8(pVer2, 2, pEnd, &p->aFFNBase.chs)))
{
break;
}
@@ -7266,7 +7266,7 @@ WW8Fonts::WW8Fonts( SvStream& rSt, WW8Fib const & rFib )
the font, e.g load the doc in 97 and save to see the unicode
ver of the asian fontnames in that example to confirm.
*/
- rtl_TextEncoding eEnc = WW8Fib::GetFIBCharset(p->chs, rFib.m_lid);
+ rtl_TextEncoding eEnc = WW8Fib::GetFIBCharset(p->aFFNBase.chs, rFib.m_lid);
if ((eEnc == RTL_TEXTENCODING_SYMBOL) || (eEnc == RTL_TEXTENCODING_DONTKNOW))
eEnc = RTL_TEXTENCODING_MS_1252;
@@ -7276,7 +7276,7 @@ WW8Fonts::WW8Fonts( SvStream& rSt, WW8Fib const & rFib )
}
p->sFontname = OUString(
reinterpret_cast<char const *>(pVer2 + 1 + 2), n, eEnc);
- pVer2 = pVer2 + p->cbFfnM1 + 1;
+ pVer2 = pVer2 + p->aFFNBase.cbFfnM1 + 1;
}
nMax = i;
}
@@ -7288,7 +7288,7 @@ WW8Fonts::WW8Fonts( SvStream& rSt, WW8Fib const & rFib )
{
if (!readU8(
pVer6, offsetof(WW8_FFN_BASE, cbFfnM1), pEnd,
- &p->cbFfnM1))
+ &p->aFFNBase.cbFfnM1))
{
break;
}
@@ -7297,19 +7297,19 @@ WW8Fonts::WW8Fonts( SvStream& rSt, WW8Fib const & rFib )
break;
}
- p->prg = c2 & 0x02;
- p->fTrueType = (c2 & 0x04) >> 2;
+ p->aFFNBase.prg = c2 & 0x02;
+ p->aFFNBase.fTrueType = (c2 & 0x04) >> 2;
// skip a reserve bit
- p->ff = (c2 & 0x70) >> 4;
+ p->aFFNBase.ff = (c2 & 0x70) >> 4;
if (!(readS16(
pVer6, offsetof(WW8_FFN_BASE, wWeight), pEnd,
- &p->wWeight)
+ &p->aFFNBase.wWeight)
&& readU8(
- pVer6, offsetof(WW8_FFN_BASE, chs), pEnd, &p->chs)
+ pVer6, offsetof(WW8_FFN_BASE, chs), pEnd, &p->aFFNBase.chs)
&& readU8(
pVer6, offsetof(WW8_FFN_BASE, ibszAlt), pEnd,
- &p->ibszAlt)))
+ &p->aFFNBase.ibszAlt)))
{
break;
}
@@ -7318,7 +7318,7 @@ WW8Fonts::WW8Fonts( SvStream& rSt, WW8Fib const & rFib )
the font, e.g load the doc in 97 and save to see the unicode
ver of the asian fontnames in that example to confirm.
*/
- rtl_TextEncoding eEnc = WW8Fib::GetFIBCharset(p->chs, rFib.m_lid);
+ rtl_TextEncoding eEnc = WW8Fib::GetFIBCharset(p->aFFNBase.chs, rFib.m_lid);
if ((eEnc == RTL_TEXTENCODING_SYMBOL) || (eEnc == RTL_TEXTENCODING_DONTKNOW))
eEnc = RTL_TEXTENCODING_MS_1252;
sal_Int32 n = getStringLength(
@@ -7330,31 +7330,31 @@ WW8Fonts::WW8Fonts( SvStream& rSt, WW8Fib const & rFib )
reinterpret_cast<char const *>(
pVer6 + offsetof(WW8_FFN_Ver6, szFfn)),
n, eEnc);
- if (p->ibszAlt && p->ibszAlt < maxStrSize) //don't start after end of string
+ if (p->aFFNBase.ibszAlt && p->aFFNBase.ibszAlt < maxStrSize) //don't start after end of string
{
n = getStringLength(
- pVer6, offsetof(WW8_FFN_Ver6, szFfn) + p->ibszAlt,
+ pVer6, offsetof(WW8_FFN_Ver6, szFfn) + p->aFFNBase.ibszAlt,
pEnd);
if (n == -1) {
break;
}
p->sFontname += ";" + OUString(
reinterpret_cast<char const *>(
- pVer6 + offsetof(WW8_FFN_Ver6, szFfn) + p->ibszAlt),
+ pVer6 + offsetof(WW8_FFN_Ver6, szFfn) + p->aFFNBase.ibszAlt),
n, eEnc);
}
else
{
//#i18369# if it's a symbol font set Symbol as fallback
if (
- RTL_TEXTENCODING_SYMBOL == WW8Fib::GetFIBCharset(p->chs, rFib.m_lid)
+ RTL_TEXTENCODING_SYMBOL == WW8Fib::GetFIBCharset(p->aFFNBase.chs, rFib.m_lid)
&& p->sFontname!="Symbol"
)
{
p->sFontname += ";Symbol";
}
}
- pVer6 = pVer6 + p->cbFfnM1 + 1;
+ pVer6 = pVer6 + p->aFFNBase.cbFfnM1 + 1;
}
nMax = i;
}
@@ -7378,26 +7378,26 @@ WW8Fonts::WW8Fonts( SvStream& rSt, WW8Fib const & rFib )
if (cbFfnM1 < cbMinFFNPayload)
break;
- p->cbFfnM1 = cbFfnM1;
+ p->aFFNBase.cbFfnM1 = cbFfnM1;
sal_uInt8 *pVer8 = pRaw;
sal_uInt8 c2 = *pVer8++;
--cbFfnM1;
- p->prg = c2 & 0x02;
- p->fTrueType = (c2 & 0x04) >> 2;
+ p->aFFNBase.prg = c2 & 0x02;
+ p->aFFNBase.fTrueType = (c2 & 0x04) >> 2;
// skip a reserve bit
- p->ff = (c2 & 0x70) >> 4;
+ p->aFFNBase.ff = (c2 & 0x70) >> 4;
- p->wWeight = SVBT16ToShort(*reinterpret_cast<SVBT16*>(pVer8));
+ p->aFFNBase.wWeight = SVBT16ToShort(*reinterpret_cast<SVBT16*>(pVer8));
pVer8+=2;
cbFfnM1-=2;
- p->chs = *pVer8++;
+ p->aFFNBase.chs = *pVer8++;
--cbFfnM1;
- p->ibszAlt = *pVer8++;
+ p->aFFNBase.ibszAlt = *pVer8++;
--cbFfnM1;
pVer8 += 10; //PANOSE
@@ -7414,9 +7414,9 @@ WW8Fonts::WW8Fonts( SvStream& rSt, WW8Fib const & rFib )
swapEndian(pPrimary);
#endif
p->sFontname = pPrimary;
- if (p->ibszAlt && p->ibszAlt < nMaxNullTerminatedPossible)
+ if (p->aFFNBase.ibszAlt && p->aFFNBase.ibszAlt < nMaxNullTerminatedPossible)
{
- sal_Unicode *pSecondary = pPrimary + p->ibszAlt;
+ sal_Unicode *pSecondary = pPrimary + p->aFFNBase.ibszAlt;
#ifdef OSL_BIGENDIAN
swapEndian(pSecondary);
#endif
@@ -7427,8 +7427,8 @@ WW8Fonts::WW8Fonts( SvStream& rSt, WW8Fib const & rFib )
lcl_checkFontname( p->sFontname );
// set pointer one font back to original array
- pRaw += p->cbFfnM1;
- nRemainingFFn -= p->cbFfnM1;
+ pRaw += p->aFFNBase.cbFfnM1;
+ nRemainingFFn -= p->aFFNBase.cbFfnM1;
++nValidFonts;
}
OSL_ENSURE(nMax == nValidFonts, "Font count differs with availability");
diff --git a/sw/source/filter/ww8/ww8struc.hxx b/sw/source/filter/ww8/ww8struc.hxx
index 559f5d440091..edb916954d3f 100644
--- a/sw/source/filter/ww8/ww8struc.hxx
+++ b/sw/source/filter/ww8/ww8struc.hxx
@@ -215,8 +215,9 @@ static_assert(sizeof (WW8_FFN_BASE) == 6, "this has to match the msword size");
/** This is what we use in the Parser (and Dumper)
*/
-struct WW8_FFN : public WW8_FFN_BASE
+struct WW8_FFN
{
+ WW8_FFN_BASE aFFNBase;
// from Ver8 on as Unicode
OUString sFontname;// 0x6 or 0x40 resp. from Ver8 on zero terminated string that
// records name of font.