[Libreoffice-commits] core.git: vcl/aqua vcl/coretext vcl/generic vcl/source vcl/win

Tor Lillqvist tlillqvist at suse.com
Wed May 22 05:35:20 PDT 2013


 vcl/aqua/source/gdi/atsui/salatslayout.cxx |   11 -----------
 vcl/coretext/salcoretextlayout.cxx         |    4 ----
 vcl/generic/print/genpspgraphics.cxx       |    2 +-
 vcl/source/gdi/pdfwriter_impl.cxx          |    6 +++---
 vcl/source/gdi/sallayout.cxx               |    8 ++------
 vcl/source/glyphs/graphite_layout.cxx      |   20 +-------------------
 vcl/win/source/gdi/winlayout.cxx           |   14 --------------
 7 files changed, 7 insertions(+), 58 deletions(-)

New commits:
commit d664f279602ae6ea9275b222f3f33634aeec97b3
Author: Tor Lillqvist <tlillqvist at suse.com>
Date:   Wed May 22 15:30:36 2013 +0300

    Revert "fdo#62846 incorrect glyph to Unicode mappings in PDFs"
    
    Breaks the build for Windows: vcl/win/source/gdi/winlayout.cxx(1897) :
    error C2065: 'nCharPos' : undeclared identifier
    
    This reverts commit 0b70e4ea4fcf0adccdfdf4886e5cc45d46479692.

diff --git a/vcl/aqua/source/gdi/atsui/salatslayout.cxx b/vcl/aqua/source/gdi/atsui/salatslayout.cxx
index e99d276..1b9776e 100644
--- a/vcl/aqua/source/gdi/atsui/salatslayout.cxx
+++ b/vcl/aqua/source/gdi/atsui/salatslayout.cxx
@@ -619,17 +619,6 @@ int ATSLayout::GetNextGlyphs( int nLen, sal_GlyphId* pGlyphIDs, Point& rPos, int
                 break;
     }
 
-    // update returned index-into-string array
-    if( pCharIndexes )
-    {
-        int nCharPos;
-        if( mpGlyphs2Chars )
-            nCharPos = mpGlyphs2Chars[nStart];
-        else
-            nCharPos = nStart + mnMinCharPos;
-        *(pCharIndexes++) = nCharPos;
-    }
-
     return nCount;
 }
 
diff --git a/vcl/coretext/salcoretextlayout.cxx b/vcl/coretext/salcoretextlayout.cxx
index 12c2035..d2c2d48 100644
--- a/vcl/coretext/salcoretextlayout.cxx
+++ b/vcl/coretext/salcoretextlayout.cxx
@@ -447,10 +447,6 @@ int CoreTextLayout::GetNextGlyphs( int nLen, sal_GlyphId* pGlyphIDs, Point& rPos
         nStart += 1;
     }
 
-    if( pCharIndexes ) {
-        pCharIndexes[i] = mpGlyphs2Chars[mnCurrentGlyphIndex];
-    }
-
     SAL_INFO( "vcl.coretext.layout", "GetNextGlyphs() returning " << i );
 
     return i;
diff --git a/vcl/generic/print/genpspgraphics.cxx b/vcl/generic/print/genpspgraphics.cxx
index 344ff3f..10af660 100644
--- a/vcl/generic/print/genpspgraphics.cxx
+++ b/vcl/generic/print/genpspgraphics.cxx
@@ -731,7 +731,7 @@ static void DrawPrinterLayout( const SalLayout& rLayout, ::psp::PrinterGfx& rGfx
     sal_Int32   aWidthAry[ nMaxGlyphs ];
     sal_Int32   aIdxAry  [ nMaxGlyphs ];
     sal_Unicode aUnicodes[ nMaxGlyphs ];
-    int         aCharPosAry [ nMaxGlyphs+1 ];
+    int         aCharPosAry [ nMaxGlyphs ];
 
     Point aPos;
     long nUnitsPerPixel = rLayout.GetUnitsPerPixel();
diff --git a/vcl/source/gdi/pdfwriter_impl.cxx b/vcl/source/gdi/pdfwriter_impl.cxx
index 4e84f07..3c7b186 100644
--- a/vcl/source/gdi/pdfwriter_impl.cxx
+++ b/vcl/source/gdi/pdfwriter_impl.cxx
@@ -7619,7 +7619,7 @@ void PDFWriterImpl::drawLayout( SalLayout& rLayout, const String& rText, bool bT
     std::vector<sal_Ucs> aUnicodes;
     aUnicodes.reserve( nMaxGlyphs );
     sal_Int32 pUnicodesPerGlyph[nMaxGlyphs];
-    int pCharPosAry[nMaxGlyphs+1];
+    int pCharPosAry[nMaxGlyphs];
     sal_Int32 nAdvanceWidths[nMaxGlyphs];
     const PhysicalFontFace* pFallbackFonts[nMaxGlyphs];
     bool bVertical = m_aCurrentPDFState.m_aFont.IsVertical();
@@ -7768,14 +7768,14 @@ void PDFWriterImpl::drawLayout( SalLayout& rLayout, const String& rText, bool bT
                 aUnicodes.push_back( rText.GetChar( sal::static_int_cast<xub_StrLen>(pCharPosAry[i]) ) );
                 pUnicodesPerGlyph[i] = 1;
                 // try to handle ligatures and such
-                if( i < nGlyphs )
+                if( i < nGlyphs-1 )
                 {
                     nChars = pCharPosAry[i+1] - pCharPosAry[i];
                     // #i115618# fix for simple RTL+CTL cases
                     // TODO: sanitize for RTL ligatures, more complex CTL, etc.
                     if( nChars < 0 )
                         nChars = -nChars;
-                    else if( nChars == 0 )
+            else if( nChars == 0 )
                         nChars = 1;
                     pUnicodesPerGlyph[i] = nChars;
                     for( int n = 1; n < nChars; n++ )
diff --git a/vcl/source/gdi/sallayout.cxx b/vcl/source/gdi/sallayout.cxx
index 705b8cc..6955679 100644
--- a/vcl/source/gdi/sallayout.cxx
+++ b/vcl/source/gdi/sallayout.cxx
@@ -1427,11 +1427,7 @@ int GenericSalLayout::GetNextGlyphs( int nLen, sal_GlyphId* pGlyphs, Point& rPos
         nOldFlags = pG->mnGlyphIndex; // &GF_FLAGMASK not needed for test above
     }
 
-    // Calculate final pCharPosAry item
-    if( pCharPosAry )
-        *pCharPosAry = pG->mnCharPos;
-
-        aRelativePos.X() /= mnUnitsPerPixel;
+    aRelativePos.X() /= mnUnitsPerPixel;
     aRelativePos.Y() /= mnUnitsPerPixel;
     rPos = GetDrawPosition( aRelativePos );
 
@@ -1679,7 +1675,7 @@ void MultiSalLayout::AdjustLayout( ImplLayoutArgs& rArgs )
     // prepare "merge sort"
     int nStartOld[ MAX_FALLBACK ];
     int nStartNew[ MAX_FALLBACK ];
-    int nCharPos[ MAX_FALLBACK+1 ];
+    int nCharPos[ MAX_FALLBACK ];
     sal_Int32 nGlyphAdv[ MAX_FALLBACK ];
     int nValid[ MAX_FALLBACK ] = {0};
 
diff --git a/vcl/source/glyphs/graphite_layout.cxx b/vcl/source/glyphs/graphite_layout.cxx
index 976ccc5..3898ab1 100644
--- a/vcl/source/glyphs/graphite_layout.cxx
+++ b/vcl/source/glyphs/graphite_layout.cxx
@@ -294,7 +294,7 @@ GraphiteLayout::fillFrom(gr_segment * pSegment, ImplLayoutArgs &rArgs, float fSc
             if (bCluster)
             {
                 nBaseGlyphIndex = mvGlyphs.size();
-                mvGlyph2Char[nBaseGlyphIndex] = firstChar + mnSegCharOffset;
+                mvGlyph2Char[nBaseGlyphIndex] = iChar + mnSegCharOffset;
                 nFirstCharInCluster = firstChar;
                 nLastCharInCluster = lastChar;
             }
@@ -1295,24 +1295,6 @@ int GraphiteLayout::GetNextGlyphs( int length, sal_GlyphId * glyph_out,
      if (glyph_itr->mnGlyphIndex == GF_DROPPED)
        break;
   }
-
-    // Calculate final pCharPosAry item
-    if (char_index)
-    {
-        if (glyph_slot >= (signed)mvGlyph2Char.size())
-        {
-            *char_index++ = mnMinCharPos + mvCharDxs.size();
-        }
-        else
-        {
-            assert(glyph_slot > -1);
-            if (mvGlyph2Char[glyph_slot] == -1)
-                *char_index++ = mnMinCharPos + mvCharDxs.size();
-            else
-                *char_index++ = mvGlyph2Char[glyph_slot];
-        }
-    }
-
   int numGlyphs = glyph_slot - glyph_slot_begin;
   // move the next glyph_slot to a glyph that hasn't been dropped
   while (glyph_slot < static_cast<int>(mvGlyphs.size()) &&
diff --git a/vcl/win/source/gdi/winlayout.cxx b/vcl/win/source/gdi/winlayout.cxx
index 6085871..41271b0 100644
--- a/vcl/win/source/gdi/winlayout.cxx
+++ b/vcl/win/source/gdi/winlayout.cxx
@@ -594,16 +594,6 @@ int SimpleWinLayout::GetNextGlyphs( int nLen, sal_GlyphId* pGlyphs, Point& rPos,
                 break;
     }
 
-    if( pCharIndexes )
-    {
-        int nCharPos;
-        if( !mpGlyphs2Chars )
-            nCharPos = nStart + mnMinCharPos;
-        else
-            nCharPos = mpGlyphs2Chars[nStart];
-        *(pCharIndexes++) = nCharPos;
-    }
-
     return nCount;
 }
 
@@ -1892,10 +1882,6 @@ int UniscribeLayout::GetNextGlyphs( int nLen, sal_GlyphId* pGlyphs, Point& rPos,
 
     ++nStart;
     nStartx8 = (nStart << 8) + nSubIter;
-
-    if( pCharPosAry )
-        *(pCharPosAry++) = nCharPos;
-
     return nCount;
 }
 


More information about the Libreoffice-commits mailing list