You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by pe...@apache.org on 2018/10/08 06:23:54 UTC

svn commit: r1843111 - in /openoffice/branches/AOO416: ./ main/ main/vcl/source/gdi/ main/vcl/source/gdi/sallayout.cxx

Author: petko
Date: Mon Oct  8 06:23:54 2018
New Revision: 1843111

URL: http://svn.apache.org/viewvc?rev=1843111&view=rev
Log:
Issue 127874 - fix bad potential invalid subscript bug when using Microsoft Uniscribe text layout API 

Modified:
    openoffice/branches/AOO416/   (props changed)
    openoffice/branches/AOO416/main/   (props changed)
    openoffice/branches/AOO416/main/vcl/source/gdi/   (props changed)
    openoffice/branches/AOO416/main/vcl/source/gdi/sallayout.cxx

Propchange: openoffice/branches/AOO416/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Oct  8 06:23:54 2018
@@ -2,5 +2,5 @@
 /openoffice/branches/ia2:1417739-1541842
 /openoffice/branches/ooxml-osba:1546391,1546395,1546574,1546934,1547030,1547392,1551920,1551954,1551958,1552283
 /openoffice/branches/rejuvenate01:1480411,1534063,1534098,1536312,1549902,1560617
-/openoffice/trunk:1571617,1571619,1571677,1572577,1572587,1573547,1574058,1574101,1575922,1576216,1576748,1578786,1579934,1580657,1580779,1581746,1581840,1582359,1582365,1582709,1583336,1583418,1583589,1583988,1585171,1585261,1586242,1586249,1586583,1587468,1589050,1591501,1592692,1592716,1594206,1595847,1595851,1595858,1596218,1596491,1596494,1597076,1597102,1597109,1599169,1599173-1599174,1600581,1600587,1600590,1600630,1600861,1600863,1600883,1602434,1602791,1602823,1602850,1603416,1603897,1604709,1604786,1605044,1605355,1605689,1606055,1606061,1607111,1607793,1607836,1608348,1608359,1608376,1608730,1608733,1609204,1609208,1609302,1609426,1610347,1610411,1610422,1610671,1611549,1612539,1612801,1621121,1623847,1623849-1623850,1642300-1642302,1647713,1652476,1654282,1668939,1669457,1669459,1669462-1669463,1669465,1689883,1689959,1690740,1690755,1690854,1694131-1694132,1694701,1697228,1697237,1697247,1697306,1697312,1702894,1702898,1702986,1702988,1705542-1705543,1705551,1706649,170
 7397,1707659,1723875,1729921,1730154,1748497,1754469,1755873,1756017,1757789,1758150,1760461,1761439,1761808,1763017,1763019,1765170,1766467,1766530,1766915,1772139,1780015,1784925,1784961,1785175,1791815,1793216,1797494,1800077,1800568,1802428,1803787,1803939,1804182,1805089,1805208,1806314,1811013,1811435,1811737,1813450,1814994,1815700,1818098,1825850,1837212,1839130,1839837,1840427
+/openoffice/trunk:1571617,1571619,1571677,1572577,1572587,1573547,1574058,1574101,1575922,1576216,1576748,1578786,1579934,1580657,1580779,1581746,1581840,1582359,1582365,1582709,1583336,1583418,1583589,1583988,1585171,1585261,1586242,1586249,1586583,1587468,1589050,1591501,1592692,1592716,1594206,1595847,1595851,1595858,1596218,1596491,1596494,1597076,1597102,1597109,1599169,1599173-1599174,1600581,1600587,1600590,1600630,1600861,1600863,1600883,1602434,1602791,1602823,1602850,1603416,1603897,1604709,1604786,1605044,1605355,1605689,1606055,1606061,1607111,1607793,1607836,1608348,1608359,1608376,1608730,1608733,1609204,1609208,1609302,1609426,1610347,1610411,1610422,1610671,1611549,1612539,1612801,1621121,1623847,1623849-1623850,1642300-1642302,1647713,1652476,1654282,1668939,1669457,1669459,1669462-1669463,1669465,1689883,1689959,1690740,1690755,1690854,1694131-1694132,1694701,1697228,1697237,1697247,1697306,1697312,1702894,1702898,1702986,1702988,1705542-1705543,1705551,1706649,170
 7397,1707659,1723875,1729921,1730154,1748497,1754469,1755873,1756017,1757789,1758150,1760461,1761439,1761808,1763017,1763019,1765170,1766467,1766530,1766915,1772139,1780015,1784925,1784961,1785175,1791815,1793216,1797494,1800077,1800568,1802428,1803787,1803939,1804182,1805089,1805208,1806314,1811013,1811435,1811737,1813450,1814994,1815700,1818098,1825850,1837212,1837765,1839130,1839837,1840427
 /openoffice/trunk/main:1705369

Propchange: openoffice/branches/AOO416/main/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Oct  8 06:23:54 2018
@@ -2,4 +2,4 @@
 /openoffice/branches/ia2/main:1417739-1541842
 /openoffice/branches/ooxml-osba/main:1546391,1546395,1546574,1546934,1547030,1547392,1551920,1551954,1551958,1552283
 /openoffice/branches/rejuvenate01/main:1480411,1534063,1534098,1536312,1549902,1560617
-/openoffice/trunk/main:1571617,1571677,1572569,1572577,1573547,1574058,1574101,1575922,1576216,1576748,1578786,1579934,1580657,1580779,1581746,1581840,1582359,1582365,1582709,1583336,1583418,1583589,1583988,1585171,1585261,1586242,1586249,1586583,1587468,1589050,1591501,1592692,1592716,1594206,1595847,1595851,1595858,1596218,1596491,1596494,1597076,1597102,1597109,1599169,1599173-1599174,1600581,1600587,1600590,1600630,1600861,1600863,1600883,1602434,1602791,1602823,1602850,1603416,1603897,1603941,1604028,1604709,1604786,1605044,1605355,1605689,1606055,1606061,1606706,1607111,1607793,1607836,1608348,1608376,1608730,1608733,1609204,1609208,1609302,1609426,1610347,1610411,1610422,1610671,1611470,1611549,1612070-1612071,1612539,1612801,1616457,1616944,1620195,1621121,1623847,1623849-1623850,1630814,1633294,1633297,1635806,1642300-1642302,1643177,1650314,1652476,1654282,1668939,1669457,1669459,1669462-1669463,1669465,1677190,1687177,1689883,1689959,1692551,1694132,1694701,1695962,169722
 8,1697237,1697247,1697306,1697312,1697807,1700078,1700126,1700135,1702107,1702894,1702898,1702986,1702988,1705193,1705196,1705199,1705276,1705364,1705368-1705369,1705542,1706649,1707167,1707169-1707170,1707175,1707397,1707408,1707412,1707642,1707645,1707659,1707844,1708477,1708483,1709212,1709377,1709403,1723875,1729921,1730154,1748497,1754469,1755873,1756017,1757789,1758150,1760461,1761439,1761808,1763017,1763019,1765170,1766467,1766915,1772139,1780015,1784925,1784961,1785175,1791815,1793216,1797494,1800077,1800568,1802428,1803787,1803939,1804182,1805089,1805208,1806314,1811737,1813450,1815700,1818098,1825850,1837212,1839130,1839837,1840427
+/openoffice/trunk/main:1571617,1571677,1572569,1572577,1573547,1574058,1574101,1575922,1576216,1576748,1578786,1579934,1580657,1580779,1581746,1581840,1582359,1582365,1582709,1583336,1583418,1583589,1583988,1585171,1585261,1586242,1586249,1586583,1587468,1589050,1591501,1592692,1592716,1594206,1595847,1595851,1595858,1596218,1596491,1596494,1597076,1597102,1597109,1599169,1599173-1599174,1600581,1600587,1600590,1600630,1600861,1600863,1600883,1602434,1602791,1602823,1602850,1603416,1603897,1603941,1604028,1604709,1604786,1605044,1605355,1605689,1606055,1606061,1606706,1607111,1607793,1607836,1608348,1608376,1608730,1608733,1609204,1609208,1609302,1609426,1610347,1610411,1610422,1610671,1611470,1611549,1612070-1612071,1612539,1612801,1616457,1616944,1620195,1621121,1623847,1623849-1623850,1630814,1633294,1633297,1635806,1642300-1642302,1643177,1650314,1652476,1654282,1668939,1669457,1669459,1669462-1669463,1669465,1677190,1687177,1689883,1689959,1692551,1694132,1694701,1695962,169722
 8,1697237,1697247,1697306,1697312,1697807,1700078,1700126,1700135,1702107,1702894,1702898,1702986,1702988,1705193,1705196,1705199,1705276,1705364,1705368-1705369,1705542,1706649,1707167,1707169-1707170,1707175,1707397,1707408,1707412,1707642,1707645,1707659,1707844,1708477,1708483,1709212,1709377,1709403,1723875,1729921,1730154,1748497,1754469,1755873,1756017,1757789,1758150,1760461,1761439,1761808,1763017,1763019,1765170,1766467,1766915,1772139,1780015,1784925,1784961,1785175,1791815,1793216,1797494,1800077,1800568,1802428,1803787,1803939,1804182,1805089,1805208,1806314,1811737,1813450,1815700,1818098,1825850,1837212,1837765,1839130,1839837,1840427

Propchange: openoffice/branches/AOO416/main/vcl/source/gdi/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Mon Oct  8 06:23:54 2018
@@ -2,4 +2,4 @@
 /openoffice/branches/ia2/main/vcl/source/gdi:1417739-1541842
 /openoffice/branches/ooxml-osba/main/vcl/source/gdi:1546391,1546395,1546574,1546934,1547030,1547392,1551920,1551954,1551958,1552283
 /openoffice/branches/rejuvenate01/main/vcl/source/gdi:1480411,1534063,1534098,1536312,1549902,1560617
-/openoffice/trunk/main/vcl/source/gdi:1571617,1571677,1572569,1572577,1573547,1574058,1574101,1575922,1576216,1576748,1578786,1579934,1580657,1580779,1581746,1581840,1582359,1582365,1582709,1583336,1583418,1583589,1583988,1585261,1586242,1586249,1586583,1587468,1589050,1591501,1592692,1592716,1594206,1595847,1595851,1595858,1596218,1596491,1596494,1597076,1597102,1597109,1599169,1599173-1599174,1600581,1600587,1600590,1600630,1600861,1600863,1600883,1602434,1602791,1602823,1602850,1603416,1603897,1603941,1604028,1604709,1604786,1605044,1605355,1605689,1606055,1606061,1606706,1607111,1607793,1607836,1608348,1608376,1608730,1608733,1609204,1609208,1609302,1609426,1610347,1610411,1610422,1610671,1611470,1611549,1612070-1612071,1612539,1612801,1616457,1616944,1621121,1623847,1623849-1623850,1631975,1642300-1642302,1654282,1669457,1669459,1669462-1669463,1669465,1677190,1687177,1689883,1689959,1692551,1694132,1694701,1700135,1702894,1702898,1702986,1702988,1705193
+/openoffice/trunk/main/vcl/source/gdi:1571617,1571677,1572569,1572577,1573547,1574058,1574101,1575922,1576216,1576748,1578786,1579934,1580657,1580779,1581746,1581840,1582359,1582365,1582709,1583336,1583418,1583589,1583988,1585261,1586242,1586249,1586583,1587468,1589050,1591501,1592692,1592716,1594206,1595847,1595851,1595858,1596218,1596491,1596494,1597076,1597102,1597109,1599169,1599173-1599174,1600581,1600587,1600590,1600630,1600861,1600863,1600883,1602434,1602791,1602823,1602850,1603416,1603897,1603941,1604028,1604709,1604786,1605044,1605355,1605689,1606055,1606061,1606706,1607111,1607793,1607836,1608348,1608376,1608730,1608733,1609204,1609208,1609302,1609426,1610347,1610411,1610422,1610671,1611470,1611549,1612070-1612071,1612539,1612801,1616457,1616944,1621121,1623847,1623849-1623850,1631975,1642300-1642302,1654282,1669457,1669459,1669462-1669463,1669465,1677190,1687177,1689883,1689959,1692551,1694132,1694701,1700135,1702894,1702898,1702986,1702988,1705193,1837765

Modified: openoffice/branches/AOO416/main/vcl/source/gdi/sallayout.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/AOO416/main/vcl/source/gdi/sallayout.cxx?rev=1843111&r1=1843110&r2=1843111&view=diff
==============================================================================
--- openoffice/branches/AOO416/main/vcl/source/gdi/sallayout.cxx (original)
+++ openoffice/branches/AOO416/main/vcl/source/gdi/sallayout.cxx Mon Oct  8 06:23:54 2018
@@ -1871,7 +1871,15 @@ void MultiSalLayout::AdjustLayout( ImplL
     // get the next codepoint index that needs fallback
     int nActiveCharPos = nCharPos[0];
     // get the end index of the active run
-    int nLastRunEndChar = (vRtl[nActiveCharPos - mnMinCharPos])?
+    // nActiveCharPos can be less than mnMinCharPos if the ScriptItemize() call
+    // in UniscribeLayout::LayoutText() finds a mult-character script item
+    // that starts in the leading context and overlaps into the start of the
+    // run.  UniscribeLayout::LayoutText() drops the glyphs for the context
+    // characters, but does not (yet?) adjust the starting character position
+    // of the item.   Since the text layout direction can't change in the
+    // middle of the offending script item, we can safely use the direction at
+    // the start of the run
+    int nLastRunEndChar = (vRtl[nActiveCharPos >= mnMinCharPos ? (nActiveCharPos - mnMinCharPos) : 0])?
         rArgs.mnEndCharPos : rArgs.mnMinCharPos - 1;
     int nRunVisibleEndChar = nCharPos[0];
     // merge the fallback levels