[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/outdev/font.cxx |6 ++ 1 file changed, 2 insertions(+), 4 deletions(-) New commits: commit ffd7f291ef1daacc5f4d14e13594c94d3a438a1b Author: Miklos VajnaDate: Fri Sep 4 16:06:46 2015 +0200 tdf#92505 vcl: fix substituting missing glyphs Commit a6b00d16eb27a5e7e31c721671001a909ecef960 (Related bnc#822625: Cache FontEntry with the original FontSelectPattern.) and the follow-up 16a62079018aea0e72636bdb00576487b4e830b9 (Oops, this reference can't be const., 2014-05-28) changed the font cache key, so that it's directly what was the argument to ImplFontCache::GetFontEntry(), which leads to missing glyphs in the bugdoc, e.g. the 4 check mark characters are rendered as a check mark only in the DejaVu Sans case on my machine, the other 3 cases result in placeholders. Fix the problem by changing back the key to aFontSelData, which is possibly modified in ImplFontCache::GetFontEntry() before used as a key. Change-Id: I80eb4ba0f986a10100b6ae421d1346f235ce83b7 (cherry picked from commit e047caf4bb461fb168d9fe08228c049938ca1698) Reviewed-on: https://gerrit.libreoffice.org/18561 Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara diff --git a/vcl/source/outdev/font.cxx b/vcl/source/outdev/font.cxx index c7faaef..0c07b97 100644 --- a/vcl/source/outdev/font.cxx +++ b/vcl/source/outdev/font.cxx @@ -1239,7 +1239,6 @@ ImplFontEntry* ImplFontCache::GetFontEntry( PhysicalFontCollection* pFontList, ImplFontEntry* ImplFontCache::GetFontEntry( PhysicalFontCollection* pFontList, FontSelectPattern& aFontSelData ) { -const FontSelectPattern aFontSelDataOrig(aFontSelData); // check if a directly matching logical font instance is already cached, // the most recently used font usually has a hit rate of >50% ImplFontEntry *pEntry = NULL; @@ -1326,9 +1325,8 @@ ImplFontEntry* ImplFontCache::GetFontEntry( PhysicalFontCollection* pFontList, } #endif -// Add the new entry to the cache with the original FontSelectPattern, -// so that we can find it next time as a direct cache hit. -maFontInstanceList[ aFontSelDataOrig ] = pEntry; +// add the new entry to the cache +maFontInstanceList[ aFontSelData ] = pEntry; } mpFirstEntry = pEntry; ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/gdi/bitmap3.cxx | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions(-) New commits: commit 47cac2f3f42e127c51a900cb5a98d32f7044c5fe Author: Stephan BergmannDate: Thu Sep 3 16:29:31 2015 +0200 Fix mis-merge ...where fb6f2e1109abdd09e80dbcd6660a9530fc06ff0f "Resolves: #i121407# Gallery reorganizations..." first cherry-picked the younger 8012fae6cedcf325130d70adf0a486e8918f452f before f7d373d18f965b36f310d44044bdba6476f6eb03 "Added ColorDepth change test with assertion to the Bitmap::Scale method" then cherry-picked the older 4be8cc079667cca2cae91dba9e46c16ccff1537f, leading to the two checks at the top of Bitmap::Scale to not return early as intended. Thanks to clang-tidy clang-analyzer-deadcode.DeadStores for flagging this. Change-Id: Id89cc517a9f7efdff040c70f3b0e640d969cf24d (cherry picked from commit 0aa9cd69598e1c022aa676f81dc7bc2f03e58b2c) Reviewed-on: https://gerrit.libreoffice.org/18311 Reviewed-by: Miklos Vajna Tested-by: Miklos Vajna diff --git a/vcl/source/gdi/bitmap3.cxx b/vcl/source/gdi/bitmap3.cxx index 6891289..a38f6d5 100644 --- a/vcl/source/gdi/bitmap3.cxx +++ b/vcl/source/gdi/bitmap3.cxx @@ -859,22 +859,20 @@ bool Bitmap::ImplConvertGhosted() bool Bitmap::Scale( const double& rScaleX, const double& rScaleY, sal_uInt32 nScaleFlag ) { -bool bRetval(false); - -const sal_uInt16 nStartCount(GetBitCount()); - if(basegfx::fTools::equalZero(rScaleX) || basegfx::fTools::equalZero(rScaleY)) { // no scale -bRetval = true; +return true; } if(basegfx::fTools::equal(rScaleX, 1.0) && basegfx::fTools::equal(rScaleY, 1.0)) { // no scale -bRetval = true; +return true; } +const sal_uInt16 nStartCount(GetBitCount()); + if( mpImpBmp ) { // implementation specific scaling @@ -910,6 +908,8 @@ bool Bitmap::Scale( const double& rScaleX, const double& rScaleY, sal_uInt32 nSc if (nStartCount == 1 && nScaleFlag != BMP_SCALE_NONE) nScaleFlag = BMP_SCALE_FAST; +bool bRetval(false); + switch(nScaleFlag) { case BMP_SCALE_NONE : ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/gdi/salgdilayout.cxx | 36 ++-- 1 file changed, 30 insertions(+), 6 deletions(-) New commits: commit df3b4a1604339eadab2f320eaf0e79ba8f4b6806 Author: Maxim Monastirsky momonas...@gmail.com Date: Sun Aug 23 15:09:59 2015 +0300 tdf#89381 Revert vcl: SalGraphics::mirror() - always use GetGraphicsWidth() This reverts commit 28effca640fff262866d1d3ada6e51a3821a6725. Change-Id: Ie21ae1ef969b2cfdce81a152c195a69ad3c27f65 Reviewed-on: https://gerrit.libreoffice.org/17937 Tested-by: Jenkins c...@libreoffice.org Reviewed-by: Caolán McNamara caol...@redhat.com Tested-by: Caolán McNamara caol...@redhat.com (cherry picked from commit d2c09305084c218facdd282c3232a9929b81e342) Reviewed-on: https://gerrit.libreoffice.org/17961 diff --git a/vcl/source/gdi/salgdilayout.cxx b/vcl/source/gdi/salgdilayout.cxx index 88a0abc..6a85e59 100644 --- a/vcl/source/gdi/salgdilayout.cxx +++ b/vcl/source/gdi/salgdilayout.cxx @@ -99,7 +99,11 @@ bool SalGraphics::drawTransformedBitmap( void SalGraphics::mirror( long x, const OutputDevice *pOutDev, bool bBack ) const { -long w = GetGraphicsWidth(); +long w; +if( pOutDev pOutDev-GetOutDevType() == OUTDEV_VIRDEV ) +w = pOutDev-GetOutputWidthPixel(); +else +w = GetGraphicsWidth(); if( w ) { @@ -131,7 +135,11 @@ void SalGraphics::mirror( long x, const OutputDevice *pOutDev, bool bBack ) con void SalGraphics::mirror( long x, long nWidth, const OutputDevice *pOutDev, bool bBack ) const { -long w = GetGraphicsWidth(); +long w; +if( pOutDev pOutDev-GetOutDevType() == OUTDEV_VIRDEV ) +w = pOutDev-GetOutputWidthPixel(); +else +w = GetGraphicsWidth(); if( w ) { @@ -164,7 +172,11 @@ void SalGraphics::mirror( long x, long nWidth, const OutputDevice *pOutDev, bo bool SalGraphics::mirror( sal_uInt32 nPoints, const SalPoint *pPtAry, SalPoint *pPtAry2, const OutputDevice *pOutDev, bool bBack ) const { -long w = GetGraphicsWidth(); +long w; +if( pOutDev pOutDev-GetOutDevType() == OUTDEV_VIRDEV ) +w = pOutDev-GetOutputWidthPixel(); +else +w = GetGraphicsWidth(); if( w ) { @@ -286,7 +298,11 @@ void SalGraphics::mirror( Rectangle rRect, const OutputDevice *pOutDev, bool bB basegfx::B2DPoint SalGraphics::mirror( const basegfx::B2DPoint i_rPoint, const OutputDevice *i_pOutDev, bool i_bBack ) const { -long w = GetGraphicsWidth(); +long w; +if( i_pOutDev i_pOutDev-GetOutDevType() == OUTDEV_VIRDEV ) +w = i_pOutDev-GetOutputWidthPixel(); +else +w = GetGraphicsWidth(); DBG_ASSERT( w, missing graphics width ); @@ -311,7 +327,11 @@ basegfx::B2DPoint SalGraphics::mirror( const basegfx::B2DPoint i_rPoint, const basegfx::B2DPolygon SalGraphics::mirror( const basegfx::B2DPolygon i_rPoly, const OutputDevice *i_pOutDev, bool i_bBack ) const { -long w = GetGraphicsWidth(); +long w; +if( i_pOutDev i_pOutDev-GetOutDevType() == OUTDEV_VIRDEV ) +w = i_pOutDev-GetOutputWidthPixel(); +else +w = GetGraphicsWidth(); DBG_ASSERT( w, missing graphics width ); @@ -337,7 +357,11 @@ basegfx::B2DPolygon SalGraphics::mirror( const basegfx::B2DPolygon i_rPoly, con basegfx::B2DPolyPolygon SalGraphics::mirror( const basegfx::B2DPolyPolygon i_rPoly, const OutputDevice *i_pOutDev, bool i_bBack ) const { -long w = GetGraphicsWidth(); +long w; +if( i_pOutDev i_pOutDev-GetOutDevType() == OUTDEV_VIRDEV ) +w = i_pOutDev-GetOutputWidthPixel(); +else +w = GetGraphicsWidth(); DBG_ASSERT( w, missing graphics width ); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/opengl/OpenGLHelper.cxx |6 +- 1 file changed, 5 insertions(+), 1 deletion(-) New commits: commit dfac25d2300b56ee4594346a4b5ce8b083a5c782 Author: Tomaž Vajngerl tomaz.vajng...@collabora.co.uk Date: Fri Jul 3 14:38:24 2015 +0900 tdf#88831 fix inverted textures when OpenGL is enabled GLX returns a wrong value if the y coords are inverted. Most other programs don't even ask for this (gnome-shell for example) and just assumes true (and this works because most relevant X servers work like this). We make this more robust and assume true only if the returned value is GLX_DONT_CARE (-1). (cherry picked from commit f7f0486376adbabf3ea66bfd8a7b692c335ec3c8) Change-Id: I4800b3364fd00f5f4a8f5a459472bfa8d97827ba Reviewed-on: https://gerrit.libreoffice.org/17707 Reviewed-by: Miklos Vajna vmik...@collabora.co.uk Tested-by: Miklos Vajna vmik...@collabora.co.uk diff --git a/vcl/source/opengl/OpenGLHelper.cxx b/vcl/source/opengl/OpenGLHelper.cxx index c71380e..6387192 100644 --- a/vcl/source/opengl/OpenGLHelper.cxx +++ b/vcl/source/opengl/OpenGLHelper.cxx @@ -507,7 +507,11 @@ GLXFBConfig OpenGLHelper::GetPixmapFBConfig( Display* pDisplay, bool bInverted } glXGetFBConfigAttrib( pDisplay, aFbConfigs[i], GLX_Y_INVERTED_EXT, nValue ); -bInverted = (nValue == True) ? true : false; + +// Looks like that X sends GLX_DONT_CARE but this usually means true for most +// of the X implementations. Investigation on internet pointed that this could be +// safely true all the time (for example gnome-shell always assumes true). +bInverted = nValue == True || nValue == int(GLX_DONT_CARE); break; } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/control/field2.cxx |9 - 1 file changed, 4 insertions(+), 5 deletions(-) New commits: commit fd637152e66d2fe8a0fddf0a840cc65bdf5cf576 Author: Lionel Elie Mamane lio...@mamane.lu Date: Tue Jul 21 14:02:59 2015 +0200 avoid 1-past-the-end string access Change-Id: Ia475ce737c430fab8d019e1b8a762f81897e0847 Reviewed-on: https://gerrit.libreoffice.org/17261 Reviewed-by: Eike Rathke er...@redhat.com Tested-by: Michael Stahl mst...@redhat.com diff --git a/vcl/source/control/field2.cxx b/vcl/source/control/field2.cxx index 326b946..dd4a569 100644 --- a/vcl/source/control/field2.cxx +++ b/vcl/source/control/field2.cxx @@ -432,15 +432,14 @@ static sal_Int32 ImplPatternRightPos( const OUString rStr, const OString rEdit { // search non-literal successor sal_Int32 nNewPos = nCursorPos; -sal_Int32 nTempPos = nNewPos; -while ( nTempPos rEditMask.getLength() ) +; +for(sal_Int32 nTempPos = nNewPos+1; nTempPos rEditMask.getLength(); ++nTempPos ) { -if ( rEditMask[nTempPos+1] != EDITMASK_LITERAL ) +if ( rEditMask[nTempPos] != EDITMASK_LITERAL ) { -nNewPos = nTempPos+1; +nNewPos = nTempPos; break; } -nTempPos++; } ImplPatternMaxPos( rStr, rEditMask, nFormatFlags, bSameMask, nCursorPos, nNewPos ); return nNewPos; ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/filter/igif/decode.cxx |9 +++-- 1 file changed, 3 insertions(+), 6 deletions(-) New commits: commit e70d45d67bb763373ae05a0729cba03e48a099bf Author: Caolán McNamara caol...@redhat.com Date: Tue Jul 14 12:43:05 2015 +0100 use same limit in ProcessOneCode as AddToTable Change-Id: Id0345e5d867d18bf7eb341f04086226b7fa79680 (cherry picked from commit 59197f1892777a5629bad210b9ed1071ed550570) Reviewed-on: https://gerrit.libreoffice.org/17040 Reviewed-by: Michael Stahl mst...@redhat.com Tested-by: Michael Stahl mst...@redhat.com diff --git a/vcl/source/filter/igif/decode.cxx b/vcl/source/filter/igif/decode.cxx index 24b25ac..a8e49e6 100644 --- a/vcl/source/filter/igif/decode.cxx +++ b/vcl/source/filter/igif/decode.cxx @@ -109,11 +109,9 @@ HPBYTE GIFLZWDecompressor::DecompressBlock( HPBYTE pSrc, sal_uInt8 cBufSize, bool GIFLZWDecompressor::AddToTable( sal_uInt16 nPrevCode, sal_uInt16 nCodeFirstData ) { -GIFLZWTableEntry* pE; - if( nTableSize 4096 ) { -pE = pTable + nTableSize; +GIFLZWTableEntry* pE = pTable + nTableSize; pE-pPrev = pTable + nPrevCode; pE-pFirst = pE-pPrev-pFirst; GIFLZWTableEntry *pEntry = pTable[nCodeFirstData].pFirst; @@ -130,7 +128,6 @@ bool GIFLZWDecompressor::AddToTable( sal_uInt16 nPrevCode, sal_uInt16 nCodeFirst bool GIFLZWDecompressor::ProcessOneCode() { -GIFLZWTableEntry* pE; sal_uInt16 nCode; boolbRet = false; boolbEndOfBlock = false; @@ -193,11 +190,11 @@ bool GIFLZWDecompressor::ProcessOneCode() nOldCode = nCode; -if (nCode 4096) +if (nCode = 4096) return false; // write character(/-sequence) of code nCode in the output buffer: -pE = pTable + nCode; +GIFLZWTableEntry* pE = pTable + nCode; do { if (pOutBufData == pOutBuf) //can't go back past start ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/gdi/jobset.cxx | 29 + 1 file changed, 17 insertions(+), 12 deletions(-) New commits: commit 81d1123ac317d9dad9872a9d2feda8cc6bd32492 Author: Caolán McNamara caol...@redhat.com Date: Mon Jan 26 11:26:41 2015 + coverity#1266485 Untrusted value as argument Change-Id: I7708ecaf5412535055584ed6c71beaa9cd71c10c (cherry picked from commit 0934ed1a40c59c169354b177d7dab4228de66171) min legal size here is 4 (cherry picked from commit 3131205c05a3fde4ef1e3322cc48ca23c443f6d3) Change-Id: I9f68d000b32623db4d949d13284043630f5689f4 (cherry picked from commit 964000d415bcf491704dad57aee7e0656ea60dab) Reviewed-on: https://gerrit.libreoffice.org/16983 Reviewed-by: David Tardon dtar...@redhat.com Tested-by: David Tardon dtar...@redhat.com diff --git a/vcl/source/gdi/jobset.cxx b/vcl/source/gdi/jobset.cxx index ec1f44f..c67255e 100644 --- a/vcl/source/gdi/jobset.cxx +++ b/vcl/source/gdi/jobset.cxx @@ -218,19 +218,24 @@ SvStream ReadJobSetup( SvStream rIStream, JobSetup rJobSetup ) DBG_ASSERTWARNING( rIStream.GetVersion(), JobSetup:: - Solar-Version not set on rOStream ); { -sal_Size nFirstPos = rIStream.Tell(); - sal_uInt16 nLen = 0; rIStream.ReadUInt16( nLen ); -if ( !nLen ) +if (nLen = 4) return rIStream; sal_uInt16 nSystem = 0; rIStream.ReadUInt16( nSystem ); - -boost::scoped_arraychar pTempBuf(new char[nLen]); -rIStream.Read( pTempBuf.get(), nLen - sizeof( nLen ) - sizeof( nSystem ) ); -if ( nLen = sizeof(ImplOldJobSetupData)+4 ) +const size_t nRead = nLen - sizeof(nLen) - sizeof(nSystem); +if (nRead rIStream.remainingSize()) +{ +SAL_WARN(vcl, Parsing error: rIStream.remainingSize() + max possible entries, but nRead claimed, truncating); +return rIStream; +} +sal_Size nFirstPos = rIStream.Tell(); +boost::scoped_arraychar pTempBuf(new char[nRead]); +rIStream.Read(pTempBuf.get(), nRead); +if (nRead = sizeof(ImplOldJobSetupData)) { ImplOldJobSetupData* pData = (ImplOldJobSetupData*)pTempBuf.get(); if ( rJobSetup.mpData ) @@ -255,7 +260,7 @@ SvStream ReadJobSetup( SvStream rIStream, JobSetup rJobSetup ) nSystem == JOBSET_FILE605_SYSTEM ) { Impl364JobSetupData* pOldJobData= (Impl364JobSetupData*)(pTempBuf.get() + sizeof( ImplOldJobSetupData )); -sal_uInt16 nOldJobDataSize = SVBT16ToShort( pOldJobData-nSize ); +sal_uInt16 nOldJobDataSize = SVBT16ToShort( pOldJobData-nSize ); pJobData-mnSystem = SVBT16ToShort( pOldJobData-nSystem ); pJobData-mnDriverDataLen = SVBT32ToUInt32( pOldJobData-nDriverDataLen ); pJobData-meOrientation = (Orientation)SVBT16ToShort( pOldJobData-nOrientation ); @@ -272,8 +277,8 @@ SvStream ReadJobSetup( SvStream rIStream, JobSetup rJobSetup ) } if( nSystem == JOBSET_FILE605_SYSTEM ) { -rIStream.Seek( nFirstPos + sizeof( ImplOldJobSetupData ) + 4 + sizeof( Impl364JobSetupData ) + pJobData-mnDriverDataLen ); -while( rIStream.Tell() nFirstPos + nLen ) +rIStream.Seek( nFirstPos + sizeof( ImplOldJobSetupData ) + sizeof( Impl364JobSetupData ) + pJobData-mnDriverDataLen ); +while( rIStream.Tell() nFirstPos + nRead ) { OUString aKey = read_uInt16_lenPrefixed_uInt8s_ToOUString(rIStream, RTL_TEXTENCODING_UTF8); OUString aValue = read_uInt16_lenPrefixed_uInt8s_ToOUString(rIStream, RTL_TEXTENCODING_UTF8); @@ -291,9 +296,9 @@ SvStream ReadJobSetup( SvStream rIStream, JobSetup rJobSetup ) else pJobData-maValueMap[ aKey ] = aValue; } -DBG_ASSERT( rIStream.Tell() == nFirstPos+nLen, corrupted job setup ); +DBG_ASSERT( rIStream.Tell() == nFirstPos+nRead, corrupted job setup ); // ensure correct stream position -rIStream.Seek( nFirstPos + nLen ); +rIStream.Seek(nFirstPos + nRead); } } } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/filter/wmf/winwmf.cxx | 21 + 1 file changed, 13 insertions(+), 8 deletions(-) New commits: commit f202ff6ba07a75e0423fa8e5be2e0f41dc7f056d Author: Caolán McNamara caol...@redhat.com Date: Fri Jul 10 11:34:03 2015 +0100 fix potential hang here Change-Id: Id62cdb90420b9ccf4e98fc1af46c70db6ed60ee0 (cherry picked from commit 7eef63bb2a4d14cb35201f84f38855910f468e20) Reviewed-on: https://gerrit.libreoffice.org/16923 Reviewed-by: David Tardon dtar...@redhat.com Tested-by: David Tardon dtar...@redhat.com diff --git a/vcl/source/filter/wmf/winwmf.cxx b/vcl/source/filter/wmf/winwmf.cxx index bee19b6..4667844 100644 --- a/vcl/source/filter/wmf/winwmf.cxx +++ b/vcl/source/filter/wmf/winwmf.cxx @@ -1713,14 +1713,19 @@ bool WMFReader::GetPlaceableBound( Rectangle rPlaceableBound, SvStream* pStm ) } break; } -nPos += nRSize * 2; - if ( nPos = nEnd ) - pStm-Seek( nPos ); - else - { - pStm-SetError( SVSTREAM_FILEFORMAT_ERROR ); - bRet = false; - } + +const sal_uInt32 nAvailableBytes = nEnd - nPos; +const sal_uInt32 nMaxPossibleRecordSize = nAvailableBytes/2; +if (nRSize = nMaxPossibleRecordSize) +{ +nPos += nRSize * 2; +pStm-Seek( nPos ); +} +else +{ +pStm-SetError( SVSTREAM_FILEFORMAT_ERROR ); +bRet = false; +} } } else ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/control/ilstbox.cxx | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) New commits: commit 3d10947eb35a1bdd9475e1e02739075c4a4ab644 Author: Caolán McNamara caol...@redhat.com Date: Thu Jul 2 16:21:26 2015 +0100 Resolves: tdf#92467 crashes with empty history list on pressing down regression from some 16-32 bit listbox limit changing Change-Id: I045eeef935afed4154fe11bfd11916c2d6a722e9 (cherry picked from commit c51d5706205cd0282c07d778ffac5f265c3eaf5f) (cherry picked from commit a8ddd3b0280baa1b770f439fbbca9ff073faa16b) Reviewed-on: https://gerrit.libreoffice.org/16699 Reviewed-by: Miklos Vajna vmik...@collabora.co.uk Tested-by: Miklos Vajna vmik...@collabora.co.uk diff --git a/vcl/source/control/ilstbox.cxx b/vcl/source/control/ilstbox.cxx index e6e4c59..4fa8c7e 100644 --- a/vcl/source/control/ilstbox.cxx +++ b/vcl/source/control/ilstbox.cxx @@ -1619,8 +1619,9 @@ bool ImplListBoxWindow::ProcessKeyInput( const KeyEvent rKEvt ) ) { DBG_ASSERT( !mpEntryList-IsEntryPosSelected( nSelect ) || mbMulti, ImplListBox: Selecting same Entry ); -if( nSelect = mpEntryList-GetEntryCount() ) -nSelect = mpEntryList-GetEntryCount()-1; +sal_Int32 nCount = mpEntryList-GetEntryCount(); +if (nSelect = nCount) +nSelect = nCount ? nCount-1 : LISTBOX_ENTRY_NOTFOUND; bool bCurPosChange = (mnCurrentPos != nSelect); mnCurrentPos = nSelect; if(SelectEntries( nSelect, eLET, bShift, bCtrl, bCurPosChange)) @@ -1680,8 +1681,9 @@ void ImplListBoxWindow::SelectEntry( ::vcl::StringEntryIdentifier _entry ) // normalize OSL_ENSURE( nSelect mpEntryList-GetEntryCount(), ImplListBoxWindow::SelectEntry: how that? ); -if( nSelect = mpEntryList-GetEntryCount() ) -nSelect = mpEntryList-GetEntryCount()-1; +sal_Int32 nCount = mpEntryList-GetEntryCount(); +if (nSelect = nCount) +nSelect = nCount ? nCount-1 : LISTBOX_ENTRY_NOTFOUND; // make visible ShowProminentEntry( nSelect ); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/window/floatwin.cxx |4 1 file changed, 4 deletions(-) New commits: commit 8e3d5f7ed230c07f3f68d4b53edc2c285b04b84d Author: Caolán McNamara caol...@redhat.com Date: Sat May 23 09:21:50 2015 +0100 Resolves: tdf#90155 don't hide+show window before initial show completes (cherry picked from commit c4bae028efbd32c8938c3a6051d58c1f202d5b8a) Change-Id: I16f6fb4ef025f2e464ca581fc348e8dd18981285 Reviewed-on: https://gerrit.libreoffice.org/15910 Reviewed-by: Miklos Vajna vmik...@collabora.co.uk Tested-by: Miklos Vajna vmik...@collabora.co.uk diff --git a/vcl/source/window/floatwin.cxx b/vcl/source/window/floatwin.cxx index 6b35c88..bd753bb 100644 --- a/vcl/source/window/floatwin.cxx +++ b/vcl/source/window/floatwin.cxx @@ -601,10 +601,6 @@ void FloatingWindow::SetTitleType( sal_uInt16 nTitle ) void FloatingWindow::StartPopupMode( const Rectangle rRect, sal_uLong nFlags ) { -// avoid flickering -if ( IsVisible() ) -Show( false, SHOW_NOFOCUSCHANGE ); - if ( IsRollUp() ) RollDown(); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/gdi/mapmod.cxx |8 vcl/source/outdev/map.cxx |1 + 2 files changed, 9 insertions(+) New commits: commit d276993a1b60f66ce4322c29709c0c3907977663 Author: Michael Stahl mst...@redhat.com Date: Fri May 15 22:46:18 2015 +0200 tdf#90604: vcl: reduce MapMode precision further to 32 bits... tdf#91195: vcl: reduce MapMode Fraction precision to avoid... ... overlow in ImplMapLogicToPixel. 50 bits is still too much, 44 appears to work for exporting PNG. DocumentToGraphicRenderer::renderToGraphic() converts a double to Fraction which is the source of the excess precision. (cherry picked from commit c8dad7ebb7c1738ae1348f92d67124c165d83f00) ... which mysteriously causes the Export PNG to produce a non-blank image again. The cause is probably that DocumentToGraphicRenderer::renderToGraphic() records a VCL MetaFile, and the ReadFraction/WriteFraction do only 32 bits, while the Fraction interface promises to handle long. (regression from 2ce0aededea43231d91a0955fc0676120dcc4f13) (cherry picked from commit 21be3257d9d10f0f65c2ae49d7ef3beb81018bfc) vcl: fix the MapMode ctor too to limit precision to 32 bits (cherry picked from commit 0a9b99787c65e49f08b27566d277eab8306cca54) Change-Id: Ic4289a3157ea802c17f0bc24db94ea45eabd9728 Reviewed-on: https://gerrit.libreoffice.org/15800 Reviewed-by: Caolán McNamara caol...@redhat.com Tested-by: Caolán McNamara caol...@redhat.com diff --git a/vcl/source/gdi/mapmod.cxx b/vcl/source/gdi/mapmod.cxx index a64f43b..56ea787 100644 --- a/vcl/source/gdi/mapmod.cxx +++ b/vcl/source/gdi/mapmod.cxx @@ -33,6 +33,10 @@ struct MapMode::ImplMapMode sal_uLong mnRefCount; MapUnit meUnit; Point maOrigin; +// NOTE: these Fraction must NOT have more than 32 bits precision +// because ReadFraction / WriteFraction do only 32 bits, so more than +// that cannot be stored in MetaFiles! +// = call ReduceInaccurate whenever setting these FractionmaScaleX; FractionmaScaleY; boolmbSimple; @@ -158,6 +162,8 @@ MapMode::MapMode( MapUnit eUnit, const Point rLogicOrg, mpImplMapMode-maOrigin = rLogicOrg; mpImplMapMode-maScaleX = rScaleX; mpImplMapMode-maScaleY = rScaleY; +mpImplMapMode-maScaleX.ReduceInaccurate(32); +mpImplMapMode-maScaleY.ReduceInaccurate(32); } MapMode::~MapMode() @@ -193,6 +199,7 @@ void MapMode::SetScaleX( const Fraction rScaleX ) ImplMakeUnique(); mpImplMapMode-maScaleX = rScaleX; +mpImplMapMode-maScaleX.ReduceInaccurate(32); } void MapMode::SetScaleY( const Fraction rScaleY ) @@ -200,6 +207,7 @@ void MapMode::SetScaleY( const Fraction rScaleY ) ImplMakeUnique(); mpImplMapMode-maScaleY = rScaleY; +mpImplMapMode-maScaleY.ReduceInaccurate(32); } MapMode MapMode::operator=( const MapMode rMapMode ) diff --git a/vcl/source/outdev/map.cxx b/vcl/source/outdev/map.cxx index b8bc6c5..599c814 100644 --- a/vcl/source/outdev/map.cxx +++ b/vcl/source/outdev/map.cxx @@ -74,6 +74,7 @@ static Fraction ImplMakeFraction( long nN1, long nN2, long nD1, long nD2 ) aF = Fraction( i*nN1, nD1 ) * Fraction( nN2, nD2 ); } +aF.ReduceInaccurate(32); return aF; } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/outdev/text.cxx |3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) New commits: commit 84b28b7d0b5061377b368c809acdb286902b4069 Author: Michael Stahl mst...@redhat.com Date: Thu Apr 16 22:25:23 2015 +0200 tdf#86793: vcl: speed up OutputDevice::GetEllipsisString() The ridiculous algrorithm used for TEXT_DRAW_CENTERELLIPSIS will go faster if we cut out most of the text at the beginning instead of one at a time. (regression from 912ecaf565e68d2ca3fb9584712313e712749f75) (cherry picked from commit c6ec3e4cee8c7c22380780f2661ac23946cdb050) Change-Id: I9310dda184715bafe372e3efef9d365e1ad9 Reviewed-on: https://gerrit.libreoffice.org/15355 Tested-by: Miklos Vajna vmik...@collabora.co.uk Reviewed-by: Miklos Vajna vmik...@collabora.co.uk diff --git a/vcl/source/outdev/text.cxx b/vcl/source/outdev/text.cxx index 113a42e..8c066d1 100644 --- a/vcl/source/outdev/text.cxx +++ b/vcl/source/outdev/text.cxx @@ -1993,7 +1993,8 @@ OUString OutputDevice::ImplGetEllipsisString( const OutputDevice rTargetDevice, if( (nStyle TEXT_DRAW_CENTERELLIPSIS) == TEXT_DRAW_CENTERELLIPSIS ) { OUStringBuffer aTmpStr( aStr ); -sal_Int32 nEraseChars = 4; +// speed it up by removing all but 1.33x as many as the break pos. +sal_Int32 nEraseChars = std::maxsal_Int32(4, aStr.getLength() - (nIndex*4)/3); while( nEraseChars aStr.getLength() _rLayout.GetTextWidth( aTmpStr.toString(), 0, aTmpStr.getLength() ) nMaxWidth ) { aTmpStr = OUStringBuffer(aStr); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/outdev/transparent.cxx |1 + 1 file changed, 1 insertion(+) New commits: commit 9b05c08079cc5c7bc611ce9c9c44eb5de83391cd Author: Michael Stahl mst...@redhat.com Date: Thu Apr 16 15:14:48 2015 +0200 tdf#84294: vcl: fix PDF export of transparent Writer frames in LO 4.3 The transparent frame background is painted opaque because OutputDevice::DrawTransparent() records a MetaTransparentAction instead of returning early. Note that master and 4.4 use drawinglayer to paint backgrounds so the problem is only visible in 4.3. (regression from 36b59f2efc2bfb2c9256c39eb5687808deb) Change-Id: Ide7a076b72123097a9fe099b96d36cda7f7bb082 (cherry picked from commit 581314958f0ddd6c3a0536ce2d7e7e6f0c53a8ec) Reviewed-on: https://gerrit.libreoffice.org/15342 Reviewed-by: Adolfo Jayme Barrientos fit...@ubuntu.com Tested-by: Adolfo Jayme Barrientos fit...@ubuntu.com diff --git a/vcl/source/outdev/transparent.cxx b/vcl/source/outdev/transparent.cxx index d3d7393..be6ed00 100644 --- a/vcl/source/outdev/transparent.cxx +++ b/vcl/source/outdev/transparent.cxx @@ -611,6 +611,7 @@ void OutputDevice::DrawTransparent( const tools::PolyPolygon rPolyPoly, if( !mbFillColor || (nTransparencePercent = 100) ) { DrawInvisiblePolygon( rPolyPoly ); +return; // tdf#84294: do not record it in metafile } // handle metafile recording ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/gdi/sallayout.cxx | 13 +++-- 1 file changed, 7 insertions(+), 6 deletions(-) New commits: commit 784ff3f0765eb94d025ef789f15ef10f51b8cc15 Author: Caolán McNamara caol...@redhat.com Date: Thu Apr 2 16:29:53 2015 +0100 Resolves: tdf#86399 don't clobber cluster start caret pos with other cluster element bounds (cherry picked from commit b1030f75d3e47719ca63ec518f1da75196bead1a) Conflicts: vcl/source/gdi/sallayout.cxx Change-Id: I2cc976eb6a0ef42a2678be80637c7220e2247921 Reviewed-on: https://gerrit.libreoffice.org/15119 Reviewed-by: Adolfo Jayme Barrientos fit...@ubuntu.com Tested-by: Adolfo Jayme Barrientos fit...@ubuntu.com diff --git a/vcl/source/gdi/sallayout.cxx b/vcl/source/gdi/sallayout.cxx index c30a99a..87df81f 100644 --- a/vcl/source/gdi/sallayout.cxx +++ b/vcl/source/gdi/sallayout.cxx @@ -1250,19 +1250,20 @@ void GenericSalLayout::KashidaJustify( long nKashidaIndex, int nKashidaWidth ) void GenericSalLayout::GetCaretPositions( int nMaxIndex, long* pCaretXArray ) const { // initialize result array -long nXPos = -1; -int i; -for( i = 0; i nMaxIndex; ++i ) -pCaretXArray[ i ] = nXPos; +for (int i = 0; i nMaxIndex; ++i) +pCaretXArray[i] = -1; // calculate caret positions using glyph array for( GlyphVector::const_iterator pG = m_GlyphItems.begin(), pGEnd = m_GlyphItems.end(); pG != pGEnd; ++pG ) { -nXPos = pG-maLinearPos.X(); +long nXPos = pG-maLinearPos.X(); long nXRight = nXPos + pG-mnOrigWidth; int n = pG-mnCharPos; int nCurrIdx = 2 * (n - mnMinCharPos); -if( !pG-IsRTLGlyph() ) +// tdf#86399 if this is not the start of a cluster, don't overwrite the caret bounds of the cluster start +if (!pG-IsClusterStart() pCaretXArray[nCurrIdx] != -1) +continue; +if (!pG-IsRTLGlyph()) { // normal positions for LTR case pCaretXArray[ nCurrIdx ] = nXPos; ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/control/ilstbox.cxx | 22 +- 1 file changed, 13 insertions(+), 9 deletions(-) New commits: commit ae0de4ffdb480745b69d2d6413c656db4112d4a7 Author: Julien Nabet serval2...@yahoo.fr Date: Thu Mar 26 22:46:00 2015 +0100 tdf#81813: Typing to select value in dropdown resets after space character Change-Id: I6972cdad9708a46bb8338590312196e55c4f8778 Reviewed-on: https://gerrit.libreoffice.org/15024 Tested-by: Jenkins c...@libreoffice.org Reviewed-by: Caolán McNamara caol...@redhat.com Tested-by: Caolán McNamara caol...@redhat.com (cherry picked from commit 44c87a5dc921ea6dd28fdc016c61aa62cfd4f4d6) Reviewed-on: https://gerrit.libreoffice.org/15098 diff --git a/vcl/source/control/ilstbox.cxx b/vcl/source/control/ilstbox.cxx index 9c66383..29f5462 100644 --- a/vcl/source/control/ilstbox.cxx +++ b/vcl/source/control/ilstbox.cxx @@ -1356,6 +1356,7 @@ bool ImplListBoxWindow::ProcessKeyInput( const KeyEvent rKEvt ) bool bCtrl = aKeyCode.IsMod1() || aKeyCode.IsMod3(); bool bMod2 = aKeyCode.IsMod2(); bool bDone = false; +bool bHandleKey = false; switch( aKeyCode.GetCode() ) { @@ -1571,7 +1572,7 @@ bool ImplListBoxWindow::ProcessKeyInput( const KeyEvent rKEvt ) } bDone = true; } -maQuickSelectionEngine.Reset(); +bHandleKey = true; } break; @@ -1594,18 +1595,21 @@ bool ImplListBoxWindow::ProcessKeyInput( const KeyEvent rKEvt ) maQuickSelectionEngine.Reset(); bDone = true; -break; } -} -// fall through intentional -default: -{ -if ( !IsReadOnly() ) +else { -bDone = maQuickSelectionEngine.HandleKeyEvent( rKEvt ); +bHandleKey = true; } - } +} break; + +default: +bHandleKey = true; +break; +} +if (bHandleKey !IsReadOnly()) +{ +bDone = maQuickSelectionEngine.HandleKeyEvent( rKEvt ); } if ( ( nSelect != LISTBOX_ENTRY_NOTFOUND ) ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/outdev/text.cxx |3 +++ 1 file changed, 3 insertions(+) New commits: commit c9d2a2b7dfb33ea55477f3991915106ff8cae998 Author: Pierre-Eric Pelloux-Prayer pell...@gmail.com Date: Thu Mar 12 22:37:54 2015 +0100 vcl/text: fix duplicate text in fontwork tdf#81876 Regression introduced by commit 2ba05b4800d6cc322276a6911792363f8eb32051 because space character will take the error code path. The error propagates up to GetTextOutlines which then uses the fallback method. In this case, we now reset any work done before, to avoid having duplicate outlines. Change-Id: Ie15524ac462d4b4bb3c482e49c4fe96a2f2d2c71 Reviewed-on: https://gerrit.libreoffice.org/14850 Tested-by: Jenkins c...@libreoffice.org Reviewed-by: Caolán McNamara caol...@redhat.com Tested-by: Caolán McNamara caol...@redhat.com (cherry picked from commit 162f11cdb94b415ff9d58674e94fb01a745a69eb) Reviewed-on: https://gerrit.libreoffice.org/14899 Reviewed-by: Adolfo Jayme Barrientos fit...@ubuntu.com Tested-by: Adolfo Jayme Barrientos fit...@ubuntu.com diff --git a/vcl/source/outdev/text.cxx b/vcl/source/outdev/text.cxx index 99ab250..113a42e 100644 --- a/vcl/source/outdev/text.cxx +++ b/vcl/source/outdev/text.cxx @@ -2672,6 +2672,9 @@ bool OutputDevice::GetTextOutlines( ::basegfx::B2DPolyPolygonVector rVector, if( bRet || (OUTDEV_PRINTER == meOutDevType) || !mpFontEntry ) return bRet; +// reset work done (tdf#81876) +rVector.clear(); + // fall back to bitmap conversion // Here, we can savely assume that the mapping between characters and glyphs // is one-to-one. This is most probably valid for the old bitmap fonts. ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/glyphs/graphite_layout.cxx |7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) New commits: commit aa543be363ffecf4d8ba9db4b26f0b6e0312b662 Author: László Németh laszlo.nem...@collabora.com Date: Mon Mar 16 00:18:51 2015 +0100 fdo#52540, fdo#88051: fix Graphite layout The previous fixes were incomplete solutions (see the new test cases of the bug reports). Change-Id: I928f09d94edf68d268de9046c16582e6f016d561 Reviewed-on: https://gerrit.libreoffice.org/14880 Reviewed-by: Caolán McNamara caol...@redhat.com Tested-by: Caolán McNamara caol...@redhat.com diff --git a/vcl/source/glyphs/graphite_layout.cxx b/vcl/source/glyphs/graphite_layout.cxx index f77ca7a..095f439 100644 --- a/vcl/source/glyphs/graphite_layout.cxx +++ b/vcl/source/glyphs/graphite_layout.cxx @@ -590,9 +590,12 @@ gr_segment * GraphiteLayout::CreateSegment(ImplLayoutArgs rArgs) static com::sun::star::uno::Reference com::sun::star::i18n::XCharacterClassification xCharClass; if ( !xCharClass.is() ) xCharClass = vcl::unohelper::CreateCharacterClassification(); -size_t numchars2 = rArgs.mnEndCharPos - mnSegCharOffset; // fdo#52540, fdo#68313, fdo#70666 avoid bad ligature replacement -if (numchars numchars2 (rArgs.mpStr[numchars2] == '\t' || xCharClass-getType(rArgs.mpStr, numchars2 + 1) == ::com::sun::star::i18n::UnicodeType::LOWERCASE_LETTER)) +size_t numchars2 = rArgs.mnEndCharPos - mnSegCharOffset; // fdo#52540, fdo#68313, fdo#70666 avoid bad ligature replacement, fdo#88051 layout problem +if (numchars numchars2 (rArgs.mpStr[mnSegCharOffset + numchars2] == '\t' || +xCharClass-getType(rArgs.mpStr + mnSegCharOffset, numchars2 + 1) == ::com::sun::star::i18n::UnicodeType::LOWERCASE_LETTER)) +{ numchars = numchars2; +} if (mpFeatures) pSegment = gr_make_seg(mpFont, mpFace, 0, mpFeatures-values(), gr_utf16, rArgs.mpStr + mnSegCharOffset, numchars, bRtl); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/gdi/bitmap3.cxx | 13 +++-- 1 file changed, 7 insertions(+), 6 deletions(-) New commits: commit e40f78753e10be6ca867aac593b6f0be166f3b73 Author: Ashod Nakashian ashodnakash...@yahoo.com Date: Mon Feb 23 22:33:27 2015 -0500 Resolves: fdo#86493 Fix crash while scaling large bitmaps. Fast bitmap scaling overflowed the LUT used by the nearest-neighbor algorithm. When a bitmap has 46k pixel on a side and is enlarged, the scaling code overflows the 32-bit long, resulting in negative indexes, which then segfaults. This isn't as rare as it sounds. At least in web-view in writer the border/shadow bitmap is as long as the document (which is an issue in its own right,) which can overflow for large documents during scaling and segfault. Reviewed-on: https://gerrit.libreoffice.org/14597 Reviewed-by: Caolán McNamara caol...@redhat.com Tested-by: Caolán McNamara caol...@redhat.com (cherry picked from commit c91bfb9ac7d110c5dca0ea34ec0e1668a985b34c) Change-Id: I1ccf73d02469f6601a9a7e67b30524cb497cf6bc Reviewed-on: https://gerrit.libreoffice.org/14809 Reviewed-by: Miklos Vajna vmik...@collabora.co.uk Tested-by: Miklos Vajna vmik...@collabora.co.uk diff --git a/vcl/source/gdi/bitmap3.cxx b/vcl/source/gdi/bitmap3.cxx index a99cd77..6891289 100644 --- a/vcl/source/gdi/bitmap3.cxx +++ b/vcl/source/gdi/bitmap3.cxx @@ -1075,18 +1075,19 @@ bool Bitmap::ImplScaleFast( const double rScaleX, const double rScaleY ) const long nScanlineSize = pWriteAcc-GetScanlineSize(); const long nNewWidth1 = nNewWidth - 1L; const long nNewHeight1 = nNewHeight - 1L; -const long nWidth = pReadAcc-Width(); -const long nHeight = pReadAcc-Height(); -boost::scoped_arraylong pLutX(new long[ nNewWidth ]); -boost::scoped_arraylong pLutY(new long[ nNewHeight ]); if( nNewWidth1 nNewHeight1 ) { +const double nWidth = pReadAcc-Width(); +const double nHeight = pReadAcc-Height(); +boost::scoped_arraylong pLutX(new long[ nNewWidth ]); +boost::scoped_arraylong pLutY(new long[ nNewHeight ]); + for( long nX = 0L; nX nNewWidth; nX++ ) -pLutX[ nX ] = nX * nWidth / nNewWidth; +pLutX[ nX ] = long(nX * nWidth / nNewWidth); for( long nY = 0L; nY nNewHeight; nY++ ) -pLutY[ nY ] = nY * nHeight / nNewHeight; +pLutY[ nY ] = long(nY * nHeight / nNewHeight); long nActY = 0L; while( nActY nNewHeight ) ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/filter/wmf/emfwr.cxx |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit bf4150f1c5211c6ceb8221cb020beba2bd796d5d Author: Caolán McNamara caol...@redhat.com Date: Thu Feb 26 13:47:58 2015 + in BITFIELDS mode (3) there are *3* pal entries not 12 There are 12 *bytes*, which presumably is the thinko there. But this nPalCount gets multiplied by 4 to convert it to bytes later. This is the source of the bad mask values found after Use the cairo-compatible basebmp surface for headless etc. Arbitrary values ended up being read as mask values. Change-Id: If5d93f74b1c58d3ecdb5186f93cb0215a556586a (cherry picked from commit 5e5b90c12862b522a4553337fbf6309bb8278b8c) Reviewed-on: https://gerrit.libreoffice.org/14659 Tested-by: Michael Stahl mst...@redhat.com Reviewed-by: Michael Stahl mst...@redhat.com diff --git a/vcl/source/filter/wmf/emfwr.cxx b/vcl/source/filter/wmf/emfwr.cxx index d0c3588..99bff37 100644 --- a/vcl/source/filter/wmf/emfwr.cxx +++ b/vcl/source/filter/wmf/emfwr.cxx @@ -857,7 +857,7 @@ void EMFWriter::ImplWriteBmpRecord( const Bitmap rBmp, const Point rPt, aMemStm.ReadUInt32( nColsUsed ); nPalCount = ( nBitCount = 8 ) ? ( nColsUsed ? nColsUsed : ( 1 (sal_uInt32) nBitCount ) ) : - ( ( 3 == nCompression ) ? 12 : 0 ); + ( ( 3 == nCompression ) ? 3 : 0 ); m_rStm.Write( aMemStm.GetData(), nDIBSize ); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/window/menu.cxx | 72 ++--- 1 file changed, 48 insertions(+), 24 deletions(-) New commits: commit b72573c15f123633a691bc76098405f24b17ecc2 Author: Caolán McNamara caol...@redhat.com Date: Thu Feb 12 17:35:17 2015 + Resolves: tdf#87663 update checker tries to add icon to toc preview toolbar i.e. CRASH when attempting to add ToC to document if the updatechecker fires while this dialog is activating/active because the preview has hidden menubars which have no associated window Change-Id: I45a254dba647910d7743f6d8173c2547dd82c791 (cherry picked from commit c6b40488c07149a2fcc8023dce4e9efb9e2fdf89) Reviewed-on: https://gerrit.libreoffice.org/14445 Reviewed-by: Eike Rathke er...@redhat.com Reviewed-by: Caolán McNamara caol...@redhat.com Tested-by: Caolán McNamara caol...@redhat.com diff --git a/vcl/source/window/menu.cxx b/vcl/source/window/menu.cxx index 546725a..8a6fa57 100644 --- a/vcl/source/window/menu.cxx +++ b/vcl/source/window/menu.cxx @@ -2381,13 +2381,13 @@ void Menu::HighlightItem( sal_uInt16 nItemPos ) } // - MenuBar - - IMenuBarWindow* MenuBar::getMenuBarWindow() { // so far just a dynamic_cast, hopefully to be turned into something saner // at some stage IMenuBarWindow *pWin = dynamic_castIMenuBarWindow*(pWindow); -assert(pWin); +//either there is no window (fdo#87663) or it is an IMenuBarWindow +assert(!pWindow || pWin); return pWin; } @@ -2419,15 +2419,19 @@ MenuBar::~MenuBar() void MenuBar::ClosePopup(Menu *pMenu) { -getMenuBarWindow()-PopupClosed(pMenu); +IMenuBarWindow* pMenuWin = getMenuBarWindow(); +if (!pMenuWin) +return; +pMenuWin-PopupClosed(pMenu); } sal_uLong MenuBar::DeactivateMenuBar(sal_uLong nFocusId) { -nFocusId = getMenuBarWindow()-GetFocusId(); +IMenuBarWindow* pMenuWin = getMenuBarWindow(); +nFocusId = pMenuWin ? pMenuWin-GetFocusId() : 0; if (nFocusId) { -getMenuBarWindow()-SetFocusId(0); +pMenuWin-SetFocusId(0); ImplGetSVData()-maWinData.mbNoDeactivate = false; } @@ -2453,7 +2457,9 @@ void MenuBar::ShowButtons( bool bClose, bool bFloat, bool bHide ) mbCloseBtnVisible = bClose; mbFloatBtnVisible = bFloat; mbHideBtnVisible = bHide; -getMenuBarWindow()-ShowButtons(bClose, bFloat, bHide); +IMenuBarWindow* pMenuWin = getMenuBarWindow(); +if (pMenuWin) +pMenuWin-ShowButtons(bClose, bFloat, bHide); } } @@ -2462,7 +2468,9 @@ void MenuBar::SetDisplayable( bool bDisplayable ) if( bDisplayable != mbDisplayable ) { mbDisplayable = bDisplayable; -getMenuBarWindow()-LayoutChanged(); +IMenuBarWindow* pMenuWin = getMenuBarWindow(); +if (pMenuWin) +pMenuWin-LayoutChanged(); } } @@ -2495,7 +2503,9 @@ void MenuBar::ImplDestroy( MenuBar* pMenu, bool bDelete ) vcl::Window *pWindow = pMenu-ImplGetWindow(); if (pWindow bDelete) { -pMenu-getMenuBarWindow()-KillActivePopup(); +IMenuBarWindow* pMenuWin = pMenu-getMenuBarWindow(); +if (pMenuWin) +pMenuWin-KillActivePopup(); delete pWindow; } pMenu-pWindow = NULL; @@ -2512,29 +2522,34 @@ bool MenuBar::ImplHandleKeyEvent( const KeyEvent rKEvent, bool bFromMenu ) // check for enabled, if this method is called from another window... vcl::Window* pWin = ImplGetWindow(); -if ( pWin pWin-IsEnabled() pWin-IsInputEnabled() ! pWin-IsInModalMode() ) -bDone = getMenuBarWindow()-HandleKeyEvent( rKEvent, bFromMenu ); +if (pWin pWin-IsEnabled() pWin-IsInputEnabled() !pWin-IsInModalMode()) +{ +IMenuBarWindow* pMenuWin = getMenuBarWindow(); +bDone = pMenuWin ? pMenuWin-HandleKeyEvent(rKEvent, bFromMenu) : false; +} return bDone; } void MenuBar::SelectItem(sal_uInt16 nId) { -IMenuBarWindow* pMenuWin = getMenuBarWindow(); - if (pWindow) { pWindow-GrabFocus(); nId = GetItemPos( nId ); -// #99705# popup the selected menu -pMenuWin-SetAutoPopup( true ); -if (ITEMPOS_INVALID != pMenuWin-GetHighlightedItem()) +IMenuBarWindow* pMenuWin = getMenuBarWindow(); +if (pMenuWin) { -pMenuWin-KillActivePopup(); -pMenuWin-ChangeHighlightItem( ITEMPOS_INVALID, false ); +// #99705# popup the selected menu +pMenuWin-SetAutoPopup( true ); +if (ITEMPOS_INVALID != pMenuWin-GetHighlightedItem()) +{ +pMenuWin-KillActivePopup(); +pMenuWin-ChangeHighlightItem( ITEMPOS_INVALID, false ); +} +if (nId != ITEMPOS_INVALID) +pMenuWin-ChangeHighlightItem( nId, false ); } -if (nId != ITEMPOS_INVALID) -pMenuWin-ChangeHighlightItem( nId,
[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/window/btndlg.cxx |8 +++- 1 file changed, 3 insertions(+), 5 deletions(-) New commits: commit e9bac857d7e3e783878422618ac03ff42d68fc27 Author: Julien Nabet serval2...@yahoo.fr Date: Wed Feb 4 21:58:55 2015 +0100 Resolves tdf#89129: crash when defining a specific relationship Returns early if comparison matches so you can reduce iterator scope and avoid last test for logging. Cherry-picked from 30f6ec7cfdf63cea265148bbe3a07d8df34e96d5 /usr/include/c++/4.9/debug/safe_iterator.h:168:error: attempt to copy- construct an iterator from a singular iterator. Objects involved in the operation: iterator this @ 0x0x7fff3a30 { type = N11__gnu_debug14_Safe_iteratorIN9__gnu_cxx17__normal_iteratorIPPvNSt9__cxx19986vectorIS3_SaIS3_ENSt7__debug6vectorIS3_S7_ (mutable iterator); state = past-the-end; references sequence with type `NSt7__debug6vectorIPvSaIS1_EEE' @ 0x0x7fff4088 } iterator other @ 0x0x7fff3a90 { type = N11__gnu_debug14_Safe_iteratorIN9__gnu_cxx17__normal_iteratorIPPvNSt9__cxx19986vectorIS3_SaIS3_ENSt7__debug6vectorIS3_S7_ (mutable iterator); state = singular; references sequence with type `NSt7__debug6vectorIPvSaIS1_EEE' @ 0x0x7fff4088 } 4 0x2aaab193d6e9 in boost::void_ptr_iterator__gnu_debug::_Safe_iterator__gnu_cxx::__normal_iteratorvoid**, std::__cxx1998::vectorvoid*, std::allocatorvoid* , std::__debug::vectorvoid*, std::allocatorvoid* , ImplBtnDlgItem::base (this=0x7fff3a90) at /home/julien/compile-libreoffice/libreoffice/workdir/UnpackedTarball/boost/boost/ptr_container/detail/void_ptr_iterator.hpp:121 5 0x2aaab193d269 in boost::operator==__gnu_debug::_Safe_iterator__gnu_cxx::__normal_iteratorvoid**, std::__cxx1998::vectorvoid*, std::allocatorvoid* , std::__debug::vectorvoid*, std::allocatorvoid* , ImplBtnDlgItem, __gnu_debug::_Safe_iterator__gnu_cxx::__normal_iteratorvoid**, std::__cxx1998::vectorvoid*, std::allocatorvoid* , std::__debug::vectorvoid*, std::allocatorvoid* , ImplBtnDlgItem (l=..., r=...) at /home/julien/compile-libreoffice/libreoffice/workdir/UnpackedTarball/boost/boost/ptr_container/detail/void_ptr_iterator.hpp:179 6 0x2aaab193c2ca in ButtonDialog::RemoveButton (this=0x7fff3d90, nId=1) at /home/julien/compile-libreoffice/libreoffice/vcl/source/window/btndlg.cxx:340 7 0x2aaad8ed109b in dbaui::ORelationTableView::lookForUiActivities (this=0x317ef30) at /home/julien/compile-libreoffice/libreoffice/dbaccess/source/ui/relationdesign/RelationTableView.cxx:342 Change-Id: Ied45c222c94d2a362075a3b1550b6092aad77c62 Reviewed-on: https://gerrit.libreoffice.org/14325 Reviewed-by: Lionel Elie Mamane lio...@mamane.lu Tested-by: Lionel Elie Mamane lio...@mamane.lu Reviewed-on: https://gerrit.libreoffice.org/14348 diff --git a/vcl/source/window/btndlg.cxx b/vcl/source/window/btndlg.cxx index 3c98801..94862da 100644 --- a/vcl/source/window/btndlg.cxx +++ b/vcl/source/window/btndlg.cxx @@ -322,8 +322,7 @@ void ButtonDialog::AddButton( StandardButtonType eType, sal_uInt16 nId, void ButtonDialog::RemoveButton( sal_uInt16 nId ) { -btn_iterator it; -for (it = maItemList.begin(); it != maItemList.end(); ++it) +for (btn_iterator it = maItemList.begin(); it != maItemList.end(); ++it) { if (it-mnId == nId) { @@ -333,12 +332,11 @@ void ButtonDialog::RemoveButton( sal_uInt16 nId ) delete it-mpPushButton; maItemList.erase(it); -break; +return; } } -if (it == maItemList.end()) -SAL_WARN( vcl.window, ButtonDialog::RemoveButton(): ButtonId invalid ); +SAL_WARN( vcl.window, ButtonDialog::RemoveButton(): ButtonId invalid ); } void ButtonDialog::Clear() ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/glyphs/graphite_layout.cxx |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit b4d399b8165b6307584860e97c503f3a8a621f06 Author: László Németh laszlo.nem...@collabora.com Date: Tue Jan 27 10:15:05 2015 +0100 tdf#88051 fix Graphite layout at Linux Libertine G ligature followed by tab Change-Id: Iecedb87f6329c1cddcaa4cd939b349924e58d256 Reviewed-on: https://gerrit.libreoffice.org/14200 Reviewed-by: Caolán McNamara caol...@redhat.com Tested-by: Caolán McNamara caol...@redhat.com diff --git a/vcl/source/glyphs/graphite_layout.cxx b/vcl/source/glyphs/graphite_layout.cxx index 6f7cbb2..f77ca7a 100644 --- a/vcl/source/glyphs/graphite_layout.cxx +++ b/vcl/source/glyphs/graphite_layout.cxx @@ -591,7 +591,7 @@ gr_segment * GraphiteLayout::CreateSegment(ImplLayoutArgs rArgs) if ( !xCharClass.is() ) xCharClass = vcl::unohelper::CreateCharacterClassification(); size_t numchars2 = rArgs.mnEndCharPos - mnSegCharOffset; // fdo#52540, fdo#68313, fdo#70666 avoid bad ligature replacement -if (numchars numchars2 xCharClass-getType(rArgs.mpStr, numchars2 + 1) == ::com::sun::star::i18n::UnicodeType::LOWERCASE_LETTER) +if (numchars numchars2 (rArgs.mpStr[numchars2] == '\t' || xCharClass-getType(rArgs.mpStr, numchars2 + 1) == ::com::sun::star::i18n::UnicodeType::LOWERCASE_LETTER)) numchars = numchars2; if (mpFeatures) pSegment = gr_make_seg(mpFont, mpFace, 0, mpFeatures-values(), gr_utf16, ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/gdi/pdfwriter_impl.cxx | 27 ++- 1 file changed, 18 insertions(+), 9 deletions(-) New commits: commit cd4de8452fc31b2b77374658145bdd1b7291733b Author: Caolán McNamara caol...@redhat.com Date: Mon Jan 26 20:35:48 2015 + Resolves: rhbz#1177022 no width set on space glyph with CM Typewriter fonts Change-Id: I0dfb044b8a339fa6c473e42f31fc28c200cd03ea (cherry picked from commit 37dc4bdbf25847c95f1668553dbae3e2dc885816) Reviewed-on: https://gerrit.libreoffice.org/14204 Tested-by: Michael Stahl mst...@redhat.com Reviewed-by: Michael Stahl mst...@redhat.com diff --git a/vcl/source/gdi/pdfwriter_impl.cxx b/vcl/source/gdi/pdfwriter_impl.cxx index 93efd94..4364341 100644 --- a/vcl/source/gdi/pdfwriter_impl.cxx +++ b/vcl/source/gdi/pdfwriter_impl.cxx @@ -3103,15 +3103,24 @@ std::map sal_Int32, sal_Int32 PDFWriterImpl::emitEmbeddedFont( const Physical memset( pEncToUnicodeIndex, 0, sizeof(pEncToUnicodeIndex) ); for( Ucs2SIntMap::const_iterator it = pEncoding-begin(); it != pEncoding-end(); ++it ) { -if( it-second != -1 ) -{ -sal_Int32 nCode = (sal_Int32)(it-second 0x00ff); -nEncoding[ nCode ] = static_castsal_uInt8( nCode ); -nEncodedCodes[ nCode ] = it-first; -pEncToUnicodeIndex[ nCode ] = static_castsal_Int32(aUnicodes.size()); -aUnicodes.push_back( it-first ); -pUnicodesPerGlyph[ nCode ] = 1; -} +if(it-second == -1) +continue; +sal_Int32 nCode = (sal_Int32)(it-second 0x00ff); +//We're not doing this right here. We have taken a unicode-to-font_index map +//and are trying to generate a font_index-to-unicode mapping from it +//Which assumes that there is a 1-to-1 mapping there, but that might not be +//true. +// +//Instead perhaps we could try and get the GetFontCharMap and loop +//over sal_UCS4 GetCharFromIndex( int nCharIndex ) const from 0 to 255 +//to build it up +if (nEncodedCodes[nCode] != 0) +continue; +nEncodedCodes[ nCode ] = it-first; +nEncoding[ nCode ] = static_castsal_uInt8( nCode ); +pEncToUnicodeIndex[ nCode ] = static_castsal_Int32(aUnicodes.size()); +aUnicodes.push_back( it-first ); +pUnicodesPerGlyph[ nCode ] = 1; } } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/filter/graphicfilter.cxx | 28 1 file changed, 16 insertions(+), 12 deletions(-) New commits: commit 872dca364233067379056ba26e0729679b789b37 Author: Caolán McNamara caol...@redhat.com Date: Tue Jan 20 13:21:36 2015 + accidentally ran make with VALGRIND set and walked away... and found this bug triggered by CppunitTest_filter_eps_test when I got back Change-Id: I20943e5bd0fbf8aed923699dd5f1e88fada43e81 (cherry picked from commit 6cf58a33676cebc9f2c1d26163793ba7dce46262) Reviewed-on: https://gerrit.libreoffice.org/14044 Tested-by: Michael Stahl mst...@redhat.com Reviewed-by: Michael Stahl mst...@redhat.com diff --git a/vcl/source/filter/graphicfilter.cxx b/vcl/source/filter/graphicfilter.cxx index b47e674..c04f4c3 100644 --- a/vcl/source/filter/graphicfilter.cxx +++ b/vcl/source/filter/graphicfilter.cxx @@ -256,9 +256,8 @@ bool isPCT(SvStream rStream, sal_uLong nStreamPos, sal_uLong nStreamLen) static bool ImpPeekGraphicFormat( SvStream rStream, OUString rFormatExtension, bool bTest ) { -sal_uInt16 i; sal_uInt8 sFirstBytes[ 256 ]; -sal_uLong nFirstLong,nSecondLong; +sal_uLong nFirstLong(0), nSecondLong(0); sal_uLong nStreamPos = rStream.Tell(); rStream.Seek( STREAM_SEEK_TO_END ); @@ -275,28 +274,33 @@ static bool ImpPeekGraphicFormat( SvStream rStream, OUString rFormatExtension, nStreamLen = rStream.Tell() - nStreamPos; rStream.Seek( nStreamPos ); } + if (!nStreamLen) { return false; // this prevents at least a STL assertion } else if (nStreamLen = 256) -{ // load first 256 bytes into a buffer -rStream.Read( sFirstBytes, 256 ); +{ +// load first 256 bytes into a buffer +sal_uLong nRead = rStream.Read(sFirstBytes, 256); +if (nRead 256) +nStreamLen = nRead; } else { -rStream.Read( sFirstBytes, nStreamLen ); - -for( i = (sal_uInt16) nStreamLen; i 256; i++ ) -sFirstBytes[ i ]=0; +nStreamLen = rStream.Read(sFirstBytes, nStreamLen); } -if( rStream.GetError() ) + +if (rStream.GetError()) return false; +for (sal_uLong i = nStreamLen; i 256; ++i) +sFirstBytes[i] = 0; + // Accommodate the first 8 bytes in nFirstLong, nSecondLong // Big-Endian: -for( i = 0, nFirstLong = 0L, nSecondLong = 0L; i 4; i++ ) +for (int i = 0; i 4; ++i) { nFirstLong=(nFirstLong8)|(sal_uLong)sFirstBytes[i]; nSecondLong=(nSecondLong8)|(sal_uLong)sFirstBytes[i+4]; @@ -325,7 +329,7 @@ static bool ImpPeekGraphicFormat( SvStream rStream, OUString rFormatExtension, sal_uInt8 nMagic; bool bOK=true; rStream.ReadUInt16( nFieldSize ).ReadUChar( nMagic ); -for (i=0; i3; i++) { +for (int i=0; i3; i++) { if (nFieldSize6) { bOK=false; break; } if (nStreamLen rStream.Tell() + nFieldSize ) { bOK=false; break; } rStream.SeekRel(nFieldSize-3); @@ -526,7 +530,7 @@ static bool ImpPeekGraphicFormat( SvStream rStream, OUString rFormatExtension, } // ASCII DXF File Format -i=0; +int i=0; while (i256 sFirstBytes[i]=32) ++i; ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/filter/wmf/enhwmf.cxx | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions(-) New commits: commit c74bbf75700d3a801f75c25b5e9bc851ef2d Author: Caolán McNamara caol...@redhat.com Date: Fri Jan 9 14:55:35 2015 + asan: stack-buffer-overflow with fdo76216-1.doc Change-Id: Ica5ebb04ec50c6579f71d1152ae7619dd37b879e (cherry picked from commit 8f43132c4d68dd2a1af7a4d1088413c2a0064902) Reviewed-on: https://gerrit.libreoffice.org/13834 Reviewed-by: Markus Mohrhard markus.mohrh...@googlemail.com Tested-by: Markus Mohrhard markus.mohrh...@googlemail.com diff --git a/vcl/source/filter/wmf/enhwmf.cxx b/vcl/source/filter/wmf/enhwmf.cxx index 290437c..d55349f 100644 --- a/vcl/source/filter/wmf/enhwmf.cxx +++ b/vcl/source/filter/wmf/enhwmf.cxx @@ -1373,13 +1373,13 @@ bool EnhWMFReader::ReadEnhWMF() .ReadUChar( aLogFont.lfQuality ) .ReadUChar( aLogFont.lfPitchAndFamily ); -sal_Unicode lfFaceName[ LF_FACESIZE ]; - -for ( int i = 0; i LF_FACESIZE; i++ ) +sal_Unicode lfFaceName[LF_FACESIZE+1]; +lfFaceName[LF_FACESIZE] = 0; +for (int i = 0; i LF_FACESIZE; ++i) { -sal_uInt16 nChar; -pWMF-ReadUInt16( nChar ); -lfFaceName[ i ] = nChar; +sal_uInt16 nChar(0); +pWMF-ReadUInt16(nChar); +lfFaceName[i] = nChar; } aLogFont.alfFaceName = OUString( lfFaceName ); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/filter/ixpm/xpmread.cxx |4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) New commits: commit cda3b8767fd8f5b43b1043852e9f90fd17a129f4 Author: Markus Mohrhard markus.mohrh...@collabora.co.uk Date: Sun Dec 28 20:16:17 2014 +0100 check size before looking into the string Found by Asan. e.g moz233272-2.xpm Change-Id: Ic563db41dbd4ce7250492e99f3e48a203cfdcf00 Reviewed-on: https://gerrit.libreoffice.org/13686 Reviewed-by: Caolán McNamara caol...@redhat.com Tested-by: Caolán McNamara caol...@redhat.com (cherry picked from commit ba4b5741db25ff3b76a8d10d8f3745dfc1973749) diff --git a/vcl/source/filter/ixpm/xpmread.cxx b/vcl/source/filter/ixpm/xpmread.cxx index 3b4b562..81c13f2 100644 --- a/vcl/source/filter/ixpm/xpmread.cxx +++ b/vcl/source/filter/ixpm/xpmread.cxx @@ -22,6 +22,7 @@ #include rgbtable.hxx #define _XPMPRIVATE #include xpmread.hxx +#include cstring XPMReader::XPMReader(SvStream rStm) : mrIStm(rStm) @@ -342,7 +343,8 @@ bool XPMReader::ImplGetColSub( sal_uInt8* pDest ) { if ( pRGBTable[ i ].name == NULL ) break; -if ( pRGBTable[ i ].name[ mnParaSize ] == 0 ) +if ( std::strlen(pRGBTable[i].name) mnParaSize +pRGBTable[ i ].name[ mnParaSize ] == 0 ) { if ( ImplCompare ( (unsigned char*)pRGBTable[ i ].name, mpPara, mnParaSize, XPMCASENONSENSITIVE ) ) ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/outdev/font.cxx |1 - 1 file changed, 1 deletion(-) New commits: commit a7f76a197900e7ece5d09fed2bf7920a42425e9c Author: Chris Sherlock chris.sherloc...@gmail.com Date: Wed Dec 24 00:31:45 2014 +1100 vcl: fdo#87510 regression in GetFontMetric Unfortunately when I refactored the code some time ago in commit 588bb542bebd I forgot to remove the original assignment to mnExtLeading. This fixes this issue. Change-Id: I9ef514c1a28ec72747fed865a47c41a1193ce1b9 Reviewed-on: https://gerrit.libreoffice.org/13628 Reviewed-by: Matthew Francis mjay.fran...@gmail.com Tested-by: Matthew Francis mjay.fran...@gmail.com diff --git a/vcl/source/outdev/font.cxx b/vcl/source/outdev/font.cxx index 7d142e04..b7d044c 100644 --- a/vcl/source/outdev/font.cxx +++ b/vcl/source/outdev/font.cxx @@ -197,7 +197,6 @@ FontMetric OutputDevice::GetFontMetric() const aMetric.mpImplMetric-mnDescent = ImplDevicePixelToLogicHeight( pMetric-mnDescent+mnEmphasisDescent ); aMetric.mpImplMetric-mnIntLeading = ImplDevicePixelToLogicHeight( pMetric-mnIntLeading+mnEmphasisAscent ); aMetric.mpImplMetric-mnExtLeading = ImplDevicePixelToLogicHeight( GetFontExtLeading() ); -aMetric.mpImplMetric-mnExtLeading = ImplDevicePixelToLogicHeight( pMetric-mnExtLeading ); aMetric.mpImplMetric-mnLineHeight = ImplDevicePixelToLogicHeight( pMetric-mnAscent+pMetric-mnDescent+mnEmphasisAscent+mnEmphasisDescent ); aMetric.mpImplMetric-mnSlant = ImplDevicePixelToLogicHeight( pMetric-mnSlant ); ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/control/combobox.cxx |7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) New commits: commit 4e8ae0f8187a9d3fa77d737f5de248cfd9b0ed55 Author: Caolán McNamara caol...@redhat.com Date: Thu Dec 18 15:24:05 2014 + Resolves: rhbz#1175142 nStarts ends up as an invalid -1 Change-Id: Ic67c5562d0e9936cd6a524ecd4f798aaf885a6e8 (cherry picked from commit 1cd9420755dc5d5435bf564a992b727c455a3d73) diff --git a/vcl/source/control/combobox.cxx b/vcl/source/control/combobox.cxx index 329e48a..14870a0 100644 --- a/vcl/source/control/combobox.cxx +++ b/vcl/source/control/combobox.cxx @@ -292,7 +292,7 @@ void ComboBox::ImplAutocompleteHandler( Edit* pEdit ) { OUStringaFullText = pEdit-GetText(); OUStringaStartText = aFullText.copy( 0, (sal_Int32)aSel.Max() ); -sal_Int32 nStart = mpImplLB-GetCurrentPos(); +sal_Int32 nStart = mpImplLB-GetCurrentPos(); if ( nStart == LISTBOX_ENTRY_NOTFOUND ) nStart = 0; @@ -303,7 +303,10 @@ void ComboBox::ImplAutocompleteHandler( Edit* pEdit ) else if ( eAction == AUTOCOMPLETE_TABBACKWARD ) { bForward = false; -nStart = nStart ? nStart - 1 : mpImplLB-GetEntryList()-GetEntryCount()-1; +if (nStart) +nStart = nStart - 1; +else if (mpImplLB-GetEntryList()-GetEntryCount()) +nStart = mpImplLB-GetEntryList()-GetEntryCount()-1; } sal_Int32 nPos = LISTBOX_ENTRY_NOTFOUND; ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/control/edit.cxx |2 ++ 1 file changed, 2 insertions(+) New commits: commit 1c4091eb525ff3a117e29da06bf66fa37928c70b Author: Caolán McNamara caol...@redhat.com Date: Tue Dec 9 10:55:19 2014 + Resolves: fdo#87132 a11y crash on clicking outside of inline playback window where the Edit::~Edit has completed, and the inherited Window::~Window is running and way down the stack someone casts it to an Edit and attempts to call Edit methods on it because of its WINDOW_EDIT type. So lets try setting its type to WINDOW_WINDOW at the end of the Edit dtor ==21149== Invalid free() / delete / delete[] / realloc() ==21149==at 0x4A07991: operator delete(void*) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==21149==by 0x7592F9C: VCLXAccessibleComponent::FillAccessibleStateSet(utl::AccessibleStateSetHelper) (vclxaccessiblecomponent.cxx:457) ==21149==by 0x7592384: VCLXAccessibleComponent::getAccessibleStateSet() (vclxaccessiblecomponent.cxx:661) ==21149==by 0x51B1640: comphelper::OAccessibleContextWrapper::getAccessibleStateSet() (accessiblewrapper.cxx:596) ==21149==by 0x152E84D1: AtkListener::updateChildList(com::sun::star::accessibility::XAccessibleContext*) (atklistener.cxx:125) ==21149==by 0x152E8973: AtkListener::handleChildRemoved(com::sun::star::uno::Referencecom::sun::star::accessibility::XAccessibleContext const, com::sun::star::uno::Referencecom::sun::star::accessibility::XAccessible const) (atklistener.cxx:199) ==21149==by 0x152E8C2D: AtkListener::notifyEvent(com::sun::star::accessibility::AccessibleEventObject const) (atklistener.cxx:292) ==21149==by 0x51AB603: comphelper::AccessibleEventNotifier::addEvent(unsigned int, com::sun::star::accessibility::AccessibleEventObject const) (accessibleeventnotifier.cxx:285) ==21149==by 0x51B451C: comphelper::OAccessibleContextWrapperHelper::notifyEvent(com::sun::star::accessibility::AccessibleEventObject const) (accessiblewrapper.cxx:492) ==21149==by 0x51AB603: comphelper::AccessibleEventNotifier::addEvent(unsigned int, com::sun::star::accessibility::AccessibleEventObject const) (accessibleeventnotifier.cxx:285) ==21149==by 0x51AA626: comphelper::OAccessibleContextHelper::NotifyAccessibleEvent(short, com::sun::star::uno::Any const, com::sun::star::uno::Any const) (accessiblecontexthelper.cxx:195) ==21149==by 0x7591800: VCLXAccessibleComponent::ProcessWindowEvent(VclWindowEvent const) (vclxaccessiblecomponent.cxx:208) ==21149==by 0x7592B6D: VCLXAccessibleComponent::WindowEventListener(VclSimpleEvent*) (vclxaccessiblecomponent.cxx:118) ==21149==by 0x8606A8E: VclEventListeners::Call(VclSimpleEvent*) const (link.hxx:123) ==21149==by 0x84133CD: Window::CallEventListeners(unsigned long, void*) (window.cxx:4289) ==21149==by 0x8422EA0: Window::~Window() (window.cxx:3413) ==21149==by 0x843ECFE: Edit::~Edit() (edit.cxx:243) ==21149==by 0x20C42894: avmedia::MediaControl::~MediaControl() (mediacontrol.cxx:199) Change-Id: Id231fe34238b3e9d0cacb1933e11fdde23839370 (cherry picked from commit fa517ab03d9e65291a4b0f25a1188ffe454f6f3e) diff --git a/vcl/source/control/edit.cxx b/vcl/source/control/edit.cxx index ffe94bf..e5a497c 100644 --- a/vcl/source/control/edit.cxx +++ b/vcl/source/control/edit.cxx @@ -267,6 +267,8 @@ Edit::~Edit() uno::Reference lang::XEventListener xEL( mxDnDListener, uno::UNO_QUERY ); xEL-disposing( lang::EventObject() ); // #95154# #96585# Empty Source means it's the Client } + +SetType(WINDOW_WINDOW); } void Edit::ImplInitEditData() ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/gdi/impfont.cxx |8 1 file changed, 8 deletions(-) New commits: commit b5795df5608c3dafa7895ab35a70ac172d68b32b Author: Caolán McNamara caol...@redhat.com Date: Thu Nov 27 10:07:22 2014 + Resolves: fdo#86203 FontCharMap claims to have twice the entries it should regression from commit f6d61562d41b8a49449d881da66a3d8fa519487f Author: Chris Sherlock chris.sherloc...@gmail.com Date: Mon Oct 6 18:16:16 2014 +1100 vcl: Make ImplFontCharMap a pImpl and move functions to FontCharMap which added this hunk to FontCharMap::FontCharMap without removing the existing loop in ImplFontCharMap::ImplFontCharMap which did exactly the same thing. So doubling the true mnCharCount. Lets just leave the initialization of mnCharCount in the ctor of the thing that contains mnCharCount Change-Id: I389cbd32217b48ed1faf8e2fa51c8f502c09dbf6 (cherry picked from commit c56d96fc39de897b5e8213eb5e5af295759dccbf) diff --git a/vcl/source/gdi/impfont.cxx b/vcl/source/gdi/impfont.cxx index d36005a..28fc72d 100644 --- a/vcl/source/gdi/impfont.cxx +++ b/vcl/source/gdi/impfont.cxx @@ -397,14 +397,6 @@ FontCharMap::FontCharMap( const CmapResult rCR ) { ImplFontCharMapPtr pImplFontCharMap( new ImplFontCharMap(rCR) ); mpImplFontCharMap = pImplFontCharMap; - -const sal_UCS4* pRangePtr = mpImplFontCharMap-mpRangeCodes; -for( int i = mpImplFontCharMap-mnRangeCount; --i = 0; pRangePtr += 2 ) -{ -sal_UCS4 cFirst = pRangePtr[0]; -sal_UCS4 cLast = pRangePtr[1]; -mpImplFontCharMap-mnCharCount += cLast - cFirst; -} } FontCharMap::~FontCharMap() ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/outdev/textline.cxx |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit e22ad3682a07ae45fcd53a0f9e29a8166eb2d48a Author: Julien Nabet serval2...@yahoo.fr Date: Tue Nov 25 23:02:48 2014 +0100 Resolves fdo#86689: Strikethrough: With / and With X static keyword explains why first time the option is well taken into account and not the other times. So let's remove this and the option will be taken into account all the times. Cherry-picked from f46a5d6dfddf86be0d77e00cf44f26af54a97c75 Change-Id: I9db84373e425dfe21c307b965b1796c781cd7863 Reviewed-on: https://gerrit.libreoffice.org/13125 Reviewed-by: Caolán McNamara caol...@redhat.com Tested-by: Caolán McNamara caol...@redhat.com diff --git a/vcl/source/outdev/textline.cxx b/vcl/source/outdev/textline.cxx index a5887c8..da1d155 100644 --- a/vcl/source/outdev/textline.cxx +++ b/vcl/source/outdev/textline.cxx @@ -591,7 +591,7 @@ void OutputDevice::ImplDrawStrikeoutChar( long nBaseX, long nBaseY, return; // prepare string for strikeout measurement -static char cStrikeoutChar = eStrikeout == STRIKEOUT_SLASH ? '/' : 'X'; +char cStrikeoutChar = eStrikeout == STRIKEOUT_SLASH ? '/' : 'X'; static const int nTestStrLen = 4; static const int nMaxStrikeStrLen = 2048; sal_Unicode aChars[nMaxStrikeStrLen+1]; // +1 for valgrind... ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/window/dialog.cxx | 19 +-- 1 file changed, 13 insertions(+), 6 deletions(-) New commits: commit 384e8a216339c7019d4bf913a37e1517a46a11d9 Author: Caolán McNamara caol...@redhat.com Date: Tue Nov 25 16:26:51 2014 + the real bug behind so many apparent crashtest discoveries the tests are done headless with dbgutil enabled and this dialog contents dumped in dbgutil mode tries to spit out the contents of the various file format not known, file busted dialogs with some bad casts and falls over and dies Change-Id: I353619f0209902d4c099b42064fd48c3c547f846 (cherry picked from commit 67fe0b50ede437601e8f5ed90514d729486c6b83) diff --git a/vcl/source/window/dialog.cxx b/vcl/source/window/dialog.cxx index 99ceec2..917af60 100644 --- a/vcl/source/window/dialog.cxx +++ b/vcl/source/window/dialog.cxx @@ -57,15 +57,22 @@ static OString ImplGetDialogText( Dialog* pDialog ) { OStringBuffer aErrorStr(OUStringToOString( pDialog-GetText(), RTL_TEXTENCODING_UTF8)); -if ( (pDialog-GetType() == WINDOW_MESSBOX) || - (pDialog-GetType() == WINDOW_INFOBOX) || - (pDialog-GetType() == WINDOW_WARNINGBOX) || - (pDialog-GetType() == WINDOW_ERRORBOX) || - (pDialog-GetType() == WINDOW_QUERYBOX) ) + +OUString sMessage; +if (MessBox* pMessBox = dynamic_castMessBox*(pDialog)) +{ +sMessage = pMessBox-GetMessText(); +} +else if (MessageDialog* pMessDialog = dynamic_castMessageDialog*(pDialog)) +{ +sMessage = pMessDialog-get_primary_text(); +} + +if (!sMessage.isEmpty()) { aErrorStr.append(, ); aErrorStr.append(OUStringToOString( -static_castMessBox*(pDialog)-GetMessText(), RTL_TEXTENCODING_UTF8)); +sMessage, RTL_TEXTENCODING_UTF8)); } return aErrorStr.makeStringAndClear(); } ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
[Libreoffice-commits] core.git: Branch 'libreoffice-4-4' - vcl/source
vcl/source/gdi/pdfwriter_impl.cxx |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) New commits: commit a1723fa94eba483c1df64cfdab9fb216347157e5 Author: Caolán McNamara caol...@redhat.com Date: Tue Nov 25 15:56:29 2014 + Revert Resolves: #i63015# always default to WinAnsiEncoding... Because under Linux use text ' and font Nimbus Sans L and export as pdf and the output is garbled If we do want to stick WinAnsiEncoding here then we'll presumably have have to test that pEncoding actually matches WinAnsiEncoding and/or generate an additional Encoding/Differences from WinAnsiEncoding for that font. This reverts commit eea16cb3e65a4308caddb7618d31a76ca259dbb1. (cherry picked from commit 297b22bd49ea11a90063ab8503fb83090f351668) Change-Id: Ia21c676581af2894229a7a8c7a05b6016ddef8fe Reviewed-on: https://gerrit.libreoffice.org/13120 Reviewed-by: Caolán McNamara caol...@redhat.com Tested-by: Caolán McNamara caol...@redhat.com diff --git a/vcl/source/gdi/pdfwriter_impl.cxx b/vcl/source/gdi/pdfwriter_impl.cxx index ad6d04d..06a7fe0 100644 --- a/vcl/source/gdi/pdfwriter_impl.cxx +++ b/vcl/source/gdi/pdfwriter_impl.cxx @@ -3504,7 +3504,7 @@ std::map sal_Int32, sal_Int32 PDFWriterImpl::emitEmbeddedFont( const Physical /Type/Font/Subtype/Type1/BaseFont/ ); appendName( aInfo.m_aPSName, aLine ); aLine.append( \n ); -if( !pFont-IsSymbolFont() ) +if( !pFont-IsSymbolFont() pEncoding == 0 ) aLine.append( /Encoding/WinAnsiEncoding\n ); if( nToUnicodeStream ) { ___ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits