You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by al...@apache.org on 2013/08/26 15:47:25 UTC
svn commit: r1517538 - in /openoffice/branches/AOO401/main/svgio: ./
inc/svgio/svgreader/ source/svgreader/
Author: alg
Date: Mon Aug 26 13:47:25 2013
New Revision: 1517538
URL: http://svn.apache.org/r1517538
Log:
122600: solve access memory problem of <SvgSvgNode::getCurrentViewPort()>
patch by: orw
review by: alg
Modified:
openoffice/branches/AOO401/main/svgio/ (props changed)
openoffice/branches/AOO401/main/svgio/inc/svgio/svgreader/svgmarkernode.hxx
openoffice/branches/AOO401/main/svgio/inc/svgio/svgreader/svgnode.hxx
openoffice/branches/AOO401/main/svgio/inc/svgio/svgreader/svgpatternnode.hxx
openoffice/branches/AOO401/main/svgio/inc/svgio/svgreader/svgsvgnode.hxx
openoffice/branches/AOO401/main/svgio/inc/svgio/svgreader/svgtools.hxx
openoffice/branches/AOO401/main/svgio/source/svgreader/svgmarkernode.cxx
openoffice/branches/AOO401/main/svgio/source/svgreader/svgnode.cxx
openoffice/branches/AOO401/main/svgio/source/svgreader/svgpatternnode.cxx
openoffice/branches/AOO401/main/svgio/source/svgreader/svgsvgnode.cxx
openoffice/branches/AOO401/main/svgio/source/svgreader/svgtools.cxx
Propchange: openoffice/branches/AOO401/main/svgio/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Mon Aug 26 13:47:25 2013
@@ -0,0 +1,7 @@
+/incubator/ooo/branches/AOO34/main/svgio:1346776-1346777,1347535,1348052,1348914,1350569,1352456,1358991,1359004,1359010,1359024,1359546-1359547,1359553,1359555-1359556,1360552,1368968,1369110,1371068
+/incubator/ooo/branches/alg/linecap/main/svgio:1226811-1232461
+/incubator/ooo/branches/alg/svgreplacement/main/svgio:1205420-1220782
+/incubator/ooo/branches/writer001/main/svgio:1356067-1386577
+/openoffice/branches/alg/clibboard/main/svgio:1428975-1437368
+/openoffice/branches/sidebar/main/svgio:1415095-1466374
+/openoffice/trunk/main/svgio:1506958,1509224,1509576,1510489,1510954,1512298,1512966,1513112,1515312,1515732,1515749,1515762,1516122,1516435,1516789,1516794
Modified: openoffice/branches/AOO401/main/svgio/inc/svgio/svgreader/svgmarkernode.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/AOO401/main/svgio/inc/svgio/svgreader/svgmarkernode.hxx?rev=1517538&r1=1517537&r2=1517538&view=diff
==============================================================================
--- openoffice/branches/AOO401/main/svgio/inc/svgio/svgreader/svgmarkernode.hxx (original)
+++ openoffice/branches/AOO401/main/svgio/inc/svgio/svgreader/svgmarkernode.hxx Mon Aug 26 13:47:25 2013
@@ -74,7 +74,7 @@ namespace svgio
const drawinglayer::primitive2d::Primitive2DSequence& getMarkerPrimitives() const;
/// InfoProvider support for % values
- virtual const basegfx::B2DRange* getCurrentViewPort() const;
+ virtual const basegfx::B2DRange getCurrentViewPort() const;
/// viewBox content
const basegfx::B2DRange* getViewBox() const { return mpViewBox; }
Modified: openoffice/branches/AOO401/main/svgio/inc/svgio/svgreader/svgnode.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/AOO401/main/svgio/inc/svgio/svgreader/svgnode.hxx?rev=1517538&r1=1517537&r2=1517538&view=diff
==============================================================================
--- openoffice/branches/AOO401/main/svgio/inc/svgio/svgreader/svgnode.hxx (original)
+++ openoffice/branches/AOO401/main/svgio/inc/svgio/svgreader/svgnode.hxx Mon Aug 26 13:47:25 2013
@@ -62,19 +62,19 @@ namespace svgio
// display property (see SVG 1.1. 11.5), not inheritable
enum Display // #121656#
{
- Display_inline, // the default
- Display_block,
- Display_list_item,
- Display_run_in,
- Display_compact,
- Display_marker,
- Display_table,
- Display_inline_table,
- Display_table_row_group,
- Display_table_header_group,
- Display_table_footer_group,
- Display_table_row,
- Display_table_column_group,
+ Display_inline, // the default
+ Display_block,
+ Display_list_item,
+ Display_run_in,
+ Display_compact,
+ Display_marker,
+ Display_table,
+ Display_inline_table,
+ Display_table_row_group,
+ Display_table_header_group,
+ Display_table_footer_group,
+ Display_table_row,
+ Display_table_column_group,
Display_table_column,
Display_table_cell,
Display_table_caption,
@@ -137,7 +137,7 @@ namespace svgio
const SvgNodeVector& getChildren() const { return maChildren; }
/// InfoProvider support for %, em and ex values
- virtual const basegfx::B2DRange* getCurrentViewPort() const;
+ virtual const basegfx::B2DRange getCurrentViewPort() const;
virtual double getCurrentFontSize() const;
virtual double getCurrentXHeight() const;
Modified: openoffice/branches/AOO401/main/svgio/inc/svgio/svgreader/svgpatternnode.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/AOO401/main/svgio/inc/svgio/svgreader/svgpatternnode.hxx?rev=1517538&r1=1517537&r2=1517538&view=diff
==============================================================================
--- openoffice/branches/AOO401/main/svgio/inc/svgio/svgreader/svgpatternnode.hxx (original)
+++ openoffice/branches/AOO401/main/svgio/inc/svgio/svgreader/svgpatternnode.hxx Mon Aug 26 13:47:25 2013
@@ -77,7 +77,7 @@ namespace svgio
const drawinglayer::primitive2d::Primitive2DSequence& getPatternPrimitives() const;
/// InfoProvider support for % values
- virtual const basegfx::B2DRange* getCurrentViewPort() const;
+ virtual const basegfx::B2DRange getCurrentViewPort() const;
/// viewBox content
const basegfx::B2DRange* getViewBox() const;
Modified: openoffice/branches/AOO401/main/svgio/inc/svgio/svgreader/svgsvgnode.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/AOO401/main/svgio/inc/svgio/svgreader/svgsvgnode.hxx?rev=1517538&r1=1517537&r2=1517538&view=diff
==============================================================================
--- openoffice/branches/AOO401/main/svgio/inc/svgio/svgreader/svgsvgnode.hxx (original)
+++ openoffice/branches/AOO401/main/svgio/inc/svgio/svgreader/svgsvgnode.hxx Mon Aug 26 13:47:25 2013
@@ -65,7 +65,7 @@ namespace svgio
// The returned 'CurrentViewPort' is the viewport as it is set by this svg element
// and as it is needed to resolve relative values in childs
// The method does not check for invalid width and height
- virtual const basegfx::B2DRange* getCurrentViewPort() const;
+ virtual const basegfx::B2DRange getCurrentViewPort() const;
/// viewBox content
const basegfx::B2DRange* getViewBox() const { return mpViewBox; }
Modified: openoffice/branches/AOO401/main/svgio/inc/svgio/svgreader/svgtools.hxx
URL: http://svn.apache.org/viewvc/openoffice/branches/AOO401/main/svgio/inc/svgio/svgreader/svgtools.hxx?rev=1517538&r1=1517537&r2=1517538&view=diff
==============================================================================
--- openoffice/branches/AOO401/main/svgio/inc/svgio/svgreader/svgtools.hxx (original)
+++ openoffice/branches/AOO401/main/svgio/inc/svgio/svgreader/svgtools.hxx Mon Aug 26 13:47:25 2013
@@ -68,7 +68,7 @@ namespace svgio
class InfoProvider
{
public:
- virtual const basegfx::B2DRange* getCurrentViewPort() const = 0;
+ virtual const basegfx::B2DRange getCurrentViewPort() const = 0;
virtual double getCurrentFontSize() const = 0;
virtual double getCurrentXHeight() const = 0;
};
Modified: openoffice/branches/AOO401/main/svgio/source/svgreader/svgmarkernode.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/AOO401/main/svgio/source/svgreader/svgmarkernode.cxx?rev=1517538&r1=1517537&r2=1517538&view=diff
==============================================================================
--- openoffice/branches/AOO401/main/svgio/source/svgreader/svgmarkernode.cxx (original)
+++ openoffice/branches/AOO401/main/svgio/source/svgreader/svgmarkernode.cxx Mon Aug 26 13:47:25 2013
@@ -196,11 +196,11 @@ namespace svgio
return aPrimitives;
}
- const basegfx::B2DRange* SvgMarkerNode::getCurrentViewPort() const
+ const basegfx::B2DRange SvgMarkerNode::getCurrentViewPort() const
{
if(getViewBox())
{
- return getViewBox();
+ return *(getViewBox());
}
else
{
Modified: openoffice/branches/AOO401/main/svgio/source/svgreader/svgnode.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/AOO401/main/svgio/source/svgreader/svgnode.cxx?rev=1517538&r1=1517537&r2=1517538&view=diff
==============================================================================
--- openoffice/branches/AOO401/main/svgio/source/svgreader/svgnode.cxx (original)
+++ openoffice/branches/AOO401/main/svgio/source/svgreader/svgnode.cxx Mon Aug 26 13:47:25 2013
@@ -229,20 +229,20 @@ namespace svgio
{
if(aContent.getLength())
{
- static rtl::OUString aStrInline(rtl::OUString::createFromAscii("inline"));
- static rtl::OUString aStrBlock(rtl::OUString::createFromAscii("block"));
- static rtl::OUString aStrList_item(rtl::OUString::createFromAscii("list-item"));
- static rtl::OUString aStrRun_in(rtl::OUString::createFromAscii("run-in"));
- static rtl::OUString aStrCompact(rtl::OUString::createFromAscii("compact"));
- static rtl::OUString aStrMarker(rtl::OUString::createFromAscii("marker"));
- static rtl::OUString aStrTable(rtl::OUString::createFromAscii("table"));
- static rtl::OUString aStrInline_table(rtl::OUString::createFromAscii("inline-table"));
- static rtl::OUString aStrTable_row_group(rtl::OUString::createFromAscii("table-row-group"));
- static rtl::OUString aStrTable_header_group(rtl::OUString::createFromAscii("table-header-group"));
- static rtl::OUString aStrTable_footer_group(rtl::OUString::createFromAscii("table-footer-group"));
- static rtl::OUString aStrTable_row(rtl::OUString::createFromAscii("table-row"));
- static rtl::OUString aStrTable_column_group(rtl::OUString::createFromAscii("table-column-group"));
- static rtl::OUString aStrTable_column(rtl::OUString::createFromAscii("table-column"));
+ static rtl::OUString aStrInline(rtl::OUString::createFromAscii("inline"));
+ static rtl::OUString aStrBlock(rtl::OUString::createFromAscii("block"));
+ static rtl::OUString aStrList_item(rtl::OUString::createFromAscii("list-item"));
+ static rtl::OUString aStrRun_in(rtl::OUString::createFromAscii("run-in"));
+ static rtl::OUString aStrCompact(rtl::OUString::createFromAscii("compact"));
+ static rtl::OUString aStrMarker(rtl::OUString::createFromAscii("marker"));
+ static rtl::OUString aStrTable(rtl::OUString::createFromAscii("table"));
+ static rtl::OUString aStrInline_table(rtl::OUString::createFromAscii("inline-table"));
+ static rtl::OUString aStrTable_row_group(rtl::OUString::createFromAscii("table-row-group"));
+ static rtl::OUString aStrTable_header_group(rtl::OUString::createFromAscii("table-header-group"));
+ static rtl::OUString aStrTable_footer_group(rtl::OUString::createFromAscii("table-footer-group"));
+ static rtl::OUString aStrTable_row(rtl::OUString::createFromAscii("table-row"));
+ static rtl::OUString aStrTable_column_group(rtl::OUString::createFromAscii("table-column-group"));
+ static rtl::OUString aStrTable_column(rtl::OUString::createFromAscii("table-column"));
static rtl::OUString aStrTable_cell(rtl::OUString::createFromAscii("table-cell"));
static rtl::OUString aStrTable_caption(rtl::OUString::createFromAscii("table-caption"));
static rtl::OUString aStrNone(rtl::OUString::createFromAscii("none"));
@@ -260,55 +260,55 @@ namespace svgio
{
return Display_inherit;
}
- else if(aContent.match(aStrBlock))
+ else if(aContent.match(aStrBlock))
{
return Display_block;
}
- else if(aContent.match(aStrList_item))
+ else if(aContent.match(aStrList_item))
{
return Display_list_item;
}
- else if(aContent.match(aStrRun_in))
+ else if(aContent.match(aStrRun_in))
{
return Display_run_in;
}
- else if(aContent.match(aStrCompact))
+ else if(aContent.match(aStrCompact))
{
return Display_compact;
}
- else if(aContent.match(aStrMarker))
+ else if(aContent.match(aStrMarker))
{
return Display_marker;
}
- else if(aContent.match(aStrTable))
+ else if(aContent.match(aStrTable))
{
return Display_table;
}
- else if(aContent.match(aStrInline_table))
+ else if(aContent.match(aStrInline_table))
{
return Display_inline_table;
}
- else if(aContent.match(aStrTable_row_group))
+ else if(aContent.match(aStrTable_row_group))
{
return Display_table_row_group;
}
- else if(aContent.match(aStrTable_header_group))
+ else if(aContent.match(aStrTable_header_group))
{
return Display_table_header_group;
}
- else if(aContent.match(aStrTable_footer_group))
+ else if(aContent.match(aStrTable_footer_group))
{
return Display_table_footer_group;
}
- else if(aContent.match(aStrTable_row))
+ else if(aContent.match(aStrTable_row))
{
return Display_table_row;
}
- else if(aContent.match(aStrTable_column_group))
+ else if(aContent.match(aStrTable_column_group))
{
return Display_table_column_group;
}
- else if(aContent.match(aStrTable_column))
+ else if(aContent.match(aStrTable_column))
{
return Display_table_column;
}
@@ -485,7 +485,7 @@ namespace svgio
}
}
- const basegfx::B2DRange* SvgNode::getCurrentViewPort() const
+ const basegfx::B2DRange SvgNode::getCurrentViewPort() const
{
if(getParent())
{
@@ -493,7 +493,7 @@ namespace svgio
}
else
{
- return 0;
+ return basegfx::B2DRange(); // return empty B2DRange
}
}
Modified: openoffice/branches/AOO401/main/svgio/source/svgreader/svgpatternnode.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/AOO401/main/svgio/source/svgreader/svgpatternnode.cxx?rev=1517538&r1=1517537&r2=1517538&view=diff
==============================================================================
--- openoffice/branches/AOO401/main/svgio/source/svgreader/svgpatternnode.cxx (original)
+++ openoffice/branches/AOO401/main/svgio/source/svgreader/svgpatternnode.cxx Mon Aug 26 13:47:25 2013
@@ -293,11 +293,11 @@ namespace svgio
return aPrimitives;
}
- const basegfx::B2DRange* SvgPatternNode::getCurrentViewPort() const
+ const basegfx::B2DRange SvgPatternNode::getCurrentViewPort() const
{
if(getViewBox())
{
- return getViewBox();
+ return *(getViewBox());
}
else
{
Modified: openoffice/branches/AOO401/main/svgio/source/svgreader/svgsvgnode.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/AOO401/main/svgio/source/svgreader/svgsvgnode.cxx?rev=1517538&r1=1517537&r2=1517538&view=diff
==============================================================================
--- openoffice/branches/AOO401/main/svgio/source/svgreader/svgsvgnode.cxx (original)
+++ openoffice/branches/AOO401/main/svgio/source/svgreader/svgsvgnode.cxx Mon Aug 26 13:47:25 2013
@@ -605,11 +605,11 @@ namespace svgio
}
}
- const basegfx::B2DRange* SvgSvgNode::getCurrentViewPort() const
+ const basegfx::B2DRange SvgSvgNode::getCurrentViewPort() const
{
if(getViewBox())
{
- return getViewBox();
+ return *(getViewBox());
}
else // viewport should be given by x, y, width, and height
{
@@ -633,7 +633,7 @@ namespace svgio
if (bXIsAbsolute && bYIsAbsolute && bWidthIsAbsolute && bHeightIsAbsolute)
{
- return &basegfx::B2DRange(fX, fY, fX+fW, fY+fH);
+ return basegfx::B2DRange(fX, fY, fX+fW, fY+fH);
}
else // try to resolve relative values
{
@@ -676,7 +676,7 @@ namespace svgio
if (bXIsAbsolute && bYIsAbsolute && bWidthIsAbsolute && bHeightIsAbsolute)
{
- return &basegfx::B2DRange(fX, fY, fX+fW, fY+fH);
+ return basegfx::B2DRange(fX, fY, fX+fW, fY+fH);
}
else // relative values could not be resolved, there exists no fallback
{
@@ -695,7 +695,7 @@ namespace svgio
double fH( bHeightIsAbsolute ? getHeight().solveNonPercentage(*this) : 0.0);
if (bWidthIsAbsolute && bHeightIsAbsolute)
{
- return &basegfx::B2DRange(0.0, 0.0, fW, fH);
+ return basegfx::B2DRange(0.0, 0.0, fW, fH);
}
else // no fallback exists
{
Modified: openoffice/branches/AOO401/main/svgio/source/svgreader/svgtools.cxx
URL: http://svn.apache.org/viewvc/openoffice/branches/AOO401/main/svgio/source/svgreader/svgtools.cxx?rev=1517538&r1=1517537&r2=1517538&view=diff
==============================================================================
--- openoffice/branches/AOO401/main/svgio/source/svgreader/svgtools.cxx (original)
+++ openoffice/branches/AOO401/main/svgio/source/svgreader/svgtools.cxx Mon Aug 26 13:47:25 2013
@@ -237,40 +237,39 @@ namespace svgio
case Unit_percent:
{
double fRetval(mfNumber * 0.01);
- const basegfx::B2DRange* pViewPort = rInfoProvider.getCurrentViewPort();
+ basegfx::B2DRange aViewPort = rInfoProvider.getCurrentViewPort();
- if(!pViewPort)
+ if ( aViewPort.isEmpty() )
{
#ifdef DBG_UTIL
myAssert(rtl::OUString::createFromAscii("Design error, this case should have been handled in the caller"));
#endif
// no viewPort, assume a normal page size (A4)
- static basegfx::B2DRange aDinA4Range(
+ aViewPort = basegfx::B2DRange(
0.0,
0.0,
210.0 * F_SVG_PIXEL_PER_INCH / 2.54,
297.0 * F_SVG_PIXEL_PER_INCH / 2.54);
- pViewPort = &aDinA4Range;
}
- if(pViewPort)
+ if ( !aViewPort.isEmpty() )
{
if(xcoordinate == aNumberType)
{
// it's a x-coordinate, relative to current width (w)
- fRetval *= pViewPort->getWidth();
+ fRetval *= aViewPort.getWidth();
}
else if(ycoordinate == aNumberType)
{
// it's a y-coordinate, relative to current height (h)
- fRetval *= pViewPort->getHeight();
+ fRetval *= aViewPort.getHeight();
}
else // length
{
// it's a length, relative to sqrt(w*w + h*h)/sqrt(2)
- const double fCurrentWidth(pViewPort->getWidth());
- const double fCurrentHeight(pViewPort->getHeight());
+ const double fCurrentWidth(aViewPort.getWidth());
+ const double fCurrentHeight(aViewPort.getHeight());
const double fCurrentLength(
sqrt(fCurrentWidth * fCurrentWidth + fCurrentHeight * fCurrentHeight)/sqrt(2.0));