canvas/source/cairo/cairo_canvashelper_text.cxx | 12 ++++++------ canvas/source/cairo/cairo_textlayout.cxx | 6 +----- canvas/source/cairo/cairo_textlayout.hxx | 2 +- sc/inc/fillinfo.hxx | 12 +----------- sc/inc/table.hxx | 9 --------- sc/source/core/data/fillinfo.cxx | 1 + sw/inc/ring.hxx | 16 +++++++++------- sw/source/core/doc/textboxhelper.cxx | 2 +- vcl/opengl/program.cxx | 13 +++++++++---- vcl/source/fontsubset/sft.cxx | 8 ++++---- 10 files changed, 33 insertions(+), 48 deletions(-)
New commits: commit f9f243b1ed1314d7f5d04924e36502a8899ff13d Author: Caolán McNamara <[email protected]> Date: Sun Dec 7 14:16:06 2014 +0000 fdo#42785 fix crashing again with this doc in 4-4 series Change-Id: I834c97a373c55733515e8e1e4945b0f1cd972f89 diff --git a/sw/source/core/doc/textboxhelper.cxx b/sw/source/core/doc/textboxhelper.cxx index c59bcbd..d0c99df 100644 --- a/sw/source/core/doc/textboxhelper.cxx +++ b/sw/source/core/doc/textboxhelper.cxx @@ -257,7 +257,7 @@ SwFrmFmt* SwTextBoxHelper::findTextBox(const SwFrmFmt* pShape) SwFrmFmt* pRet = 0; // Only draw frames can have TextBoxes. - if (pShape->Which() == RES_DRAWFRMFMT && pShape->GetAttrSet().HasItem(RES_CNTNT)) + if (pShape && pShape->Which() == RES_DRAWFRMFMT && pShape->GetAttrSet().HasItem(RES_CNTNT)) { const SwFmtCntnt& rCntnt = pShape->GetCntnt(); const SwFrmFmts& rSpzFrmFmts = *pShape->GetDoc()->GetSpzFrmFmts(); commit 4ac876084bb89b6460b31e090a666b395f66b1e8 Author: Caolán McNamara <[email protected]> Date: Sun Dec 7 11:52:14 2014 +0000 mpSurface->getCairo() == mpCairo so make that clearer, and we only need to pass a Cairo context not a surface here Change-Id: If385dbd4e8a546fa18c2f93650428fe0ed0c76fc diff --git a/canvas/source/cairo/cairo_canvashelper_text.cxx b/canvas/source/cairo/cairo_canvashelper_text.cxx index c9c3702..5530eed 100644 --- a/canvas/source/cairo/cairo_canvashelper_text.cxx +++ b/canvas/source/cairo/cairo_canvashelper_text.cxx @@ -299,8 +299,8 @@ namespace cairocanvas { #if defined CAIRO_HAS_WIN32_SURFACE // FIXME: Some kind of work-araound... - cairo_rectangle (mpSurface->getCairo().get(), 0, 0, 0, 0); - cairo_fill(mpSurface->getCairo().get()); + cairo_rectangle (mpCairo.get(), 0, 0, 0, 0); + cairo_fill(mpCairo.get()); #endif ::Point aOutpos; if( !setupTextOutput( *mpVirtualDevice, pOwner, aOutpos, viewState, renderState, xFont ) ) @@ -333,7 +333,7 @@ namespace cairocanvas RTL_TEXTENCODING_UTF8 ).getStr()); rtl::Reference< TextLayout > pTextLayout( new TextLayout(text, textDirection, 0, CanvasFont::Reference(dynamic_cast< CanvasFont* >( xFont.get() )), mpSurfaceProvider) ); - pTextLayout->draw( mpSurface, *mpVirtualDevice, aOutpos, viewState, renderState ); + pTextLayout->draw(mpCairo, *mpVirtualDevice, aOutpos, viewState, renderState); } return uno::Reference< rendering::XCachedPrimitive >(NULL); @@ -358,8 +358,8 @@ namespace cairocanvas { #if defined CAIRO_HAS_WIN32_SURFACE // FIXME: Some kind of work-araound... - cairo_rectangle( mpSurface->getCairo().get(), 0, 0, 0, 0); - cairo_fill(mpSurface->getCairo().get()); + cairo_rectangle(mpCairo.get(), 0, 0, 0, 0); + cairo_fill(mpCairo.get()); #endif // TODO(T3): Race condition. We're taking the font // from xLayoutedText, and then calling draw() at it, @@ -371,7 +371,7 @@ namespace cairocanvas return uno::Reference< rendering::XCachedPrimitive >(NULL); // no output necessary // TODO(F2): What about the offset scalings? - pTextLayout->draw( mpSurface, *mpVirtualDevice, aOutpos, viewState, renderState ); + pTextLayout->draw(mpCairo, *mpVirtualDevice, aOutpos, viewState, renderState); } } else diff --git a/canvas/source/cairo/cairo_textlayout.cxx b/canvas/source/cairo/cairo_textlayout.cxx index 8b11012..892830e 100644 --- a/canvas/source/cairo/cairo_textlayout.cxx +++ b/canvas/source/cairo/cairo_textlayout.cxx @@ -337,7 +337,7 @@ namespace cairocanvas * * @return true, if successful **/ - bool TextLayout::draw( SurfaceSharedPtr& pSurface, + bool TextLayout::draw( CairoSharedPtr& pSCairo, OutputDevice& rOutDev, const Point& rOutpos, const rendering::ViewState& viewState, @@ -486,8 +486,6 @@ namespace cairocanvas # error Native API needed. #endif - CairoSharedPtr pSCairo = pSurface->getCairo(); - cairo_set_font_face( pSCairo.get(), font_face); // create default font options. cairo_get_font_options() does not retrieve the surface defaults, diff --git a/canvas/source/cairo/cairo_textlayout.hxx b/canvas/source/cairo/cairo_textlayout.hxx index 4509b52..25296fc 100644 --- a/canvas/source/cairo/cairo_textlayout.hxx +++ b/canvas/source/cairo/cairo_textlayout.hxx @@ -81,7 +81,7 @@ namespace cairocanvas virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE; virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE; - bool draw( ::cairo::SurfaceSharedPtr& pSurface, + bool draw( ::cairo::CairoSharedPtr& pSCairo, OutputDevice& rOutDev, const Point& rOutpos, const ::com::sun::star::rendering::ViewState& viewState, commit 5e59fe98ce4b29dd75e9d484a7f0d43b575709e8 Author: Caolán McNamara <[email protected]> Date: Sun Dec 7 11:47:10 2014 +0000 cairo_restore without matching cairo_save Change-Id: I74496f40a532f9202e8729b8a81ef20ee86a5133 diff --git a/canvas/source/cairo/cairo_textlayout.cxx b/canvas/source/cairo/cairo_textlayout.cxx index f2b5ddd..8b11012 100644 --- a/canvas/source/cairo/cairo_textlayout.cxx +++ b/canvas/source/cairo/cairo_textlayout.cxx @@ -573,14 +573,12 @@ namespace cairocanvas OSL_TRACE(":cairocanvas::TextLayout::draw(S,O,p,v,r): FAKEBOLD - dx:%d", (int) bold_dx); } - cairo_restore( pSCairo.get() ); cairo_font_face_destroy(font_face); cairo_font_options_destroy(options); } return true; } - namespace { class OffsetTransformer commit 4c6a30d53d9039066c368b9e9f6819e8594461cc Author: Caolán McNamara <[email protected]> Date: Fri Dec 5 09:37:24 2014 +0000 coverity#707985 Uninitialized scalar field Change-Id: I1847b2900b513cc9b7b47767a15fb7e11d0abf26 diff --git a/sc/inc/fillinfo.hxx b/sc/inc/fillinfo.hxx index 45b4a64..94bd6b1 100644 --- a/sc/inc/fillinfo.hxx +++ b/sc/inc/fillinfo.hxx @@ -143,7 +143,7 @@ struct RowInfo : boost::noncopyable { CellInfo* pCellInfo; - sal_uInt16 nHeight; + sal_uInt16 nHeight; SCROW nRowNo; SCCOL nRotMaxCol; // SC_ROTMAX_NONE, if nothing @@ -152,12 +152,6 @@ struct RowInfo : boost::noncopyable bool bAutoFilter:1; bool bPivotButton:1; bool bChanged:1; // TRUE, if not tested - - inline explicit RowInfo() : pCellInfo( 0 ) {} - -private: - RowInfo( const RowInfo& ); - RowInfo& operator=( const RowInfo& ); }; struct ScTableInfo : boost::noncopyable @@ -169,10 +163,6 @@ struct ScTableInfo : boost::noncopyable explicit ScTableInfo(); ~ScTableInfo(); - -private: - ScTableInfo( const ScTableInfo& ); - ScTableInfo& operator=( const ScTableInfo& ); }; #endif diff --git a/sc/source/core/data/fillinfo.cxx b/sc/source/core/data/fillinfo.cxx index 0811290..c2d36c0 100644 --- a/sc/source/core/data/fillinfo.cxx +++ b/sc/source/core/data/fillinfo.cxx @@ -1120,6 +1120,7 @@ ScTableInfo::ScTableInfo() , mnArrCount(0) , mbPageMode(false) { + memset(mpRowInfo, 0, ROWINFO_MAX*sizeof(RowInfo)); } ScTableInfo::~ScTableInfo() commit fe73f2098ed9aa8bee1da5cba98353549384d642 Author: Caolán McNamara <[email protected]> Date: Thu Dec 4 21:08:31 2014 +0000 effectively expand init_header into member init list this is all that init_header does anyway Change-Id: If1607ab25b43bd313d2d2f1da65c20fc87ae7951 diff --git a/sw/inc/ring.hxx b/sw/inc/ring.hxx index b4cb4a0..59c3981 100644 --- a/sw/inc/ring.hxx +++ b/sw/inc/ring.hxx @@ -65,8 +65,9 @@ namespace sw * are alone in one. */ Ring() - : pPrev(static_cast< value_type* >(this)) - { algo::init_header(static_cast< value_type* >(this)); } + : pNext(static_cast< value_type* >(this)) + , pPrev(static_cast< value_type* >(this)) + { } /** * Creates a new item and add it to an existing ring container. * Note: the newly created item will be inserted just before item pRing. @@ -120,13 +121,14 @@ namespace sw template <typename value_type> inline Ring<value_type>::Ring( value_type* pObj ) - : pPrev(static_cast< value_type* >(this)) + : pNext(static_cast< value_type* >(this)) + , pPrev(static_cast< value_type* >(this)) { - value_type* pThis = static_cast< value_type* >(this); - if( !pObj ) - algo::init_header(pThis); - else + if( pObj ) + { + value_type* pThis = static_cast< value_type* >(this); algo::link_before(pObj, pThis); + } } template <typename value_type> commit 46c9f1e247e0e3d16c82566783344a2389fa4543 Author: Caolán McNamara <[email protected]> Date: Thu Dec 4 16:40:12 2014 +0000 try and help coverity out here wrt #3 of 1213364 Untrusted loop bound Change-Id: I4a47d4e1d6ebca14921c7e001d28354d687968d0 diff --git a/vcl/source/fontsubset/sft.cxx b/vcl/source/fontsubset/sft.cxx index 4085e83..1adaf79 100644 --- a/vcl/source/fontsubset/sft.cxx +++ b/vcl/source/fontsubset/sft.cxx @@ -455,7 +455,7 @@ static int GetSimpleTTOutline(TrueTypeFont *ttf, sal_uInt32 glyphID, ControlPoin const sal_uInt16 palen = lastPoint+1; //at a minimum its one byte per entry - if (palen > nBytesRemaining) + if (palen > nBytesRemaining || lastPoint > nBytesRemaining-1) { SAL_WARN("vcl.fonts", "Font " << OUString::createFromAscii(ttf->fname) << "claimed a palen of " commit 6406a2701c3eae884e967f0b80e2e8a3228d39df Author: Caolán McNamara <[email protected]> Date: Thu Dec 4 16:37:30 2014 +0000 coverity#1213364 Untrusted loop bound Change-Id: I586b9550b09a485cedd13e0e4c637f253e8eafd0 diff --git a/vcl/source/fontsubset/sft.cxx b/vcl/source/fontsubset/sft.cxx index bd9a1fe..4085e83 100644 --- a/vcl/source/fontsubset/sft.cxx +++ b/vcl/source/fontsubset/sft.cxx @@ -435,8 +435,8 @@ static int GetSimpleTTOutline(TrueTypeFont *ttf, sal_uInt32 glyphID, ControlPoin /* determine the last point and be extra safe about it. But probably this code is not needed */ sal_uInt16 lastPoint=0; - sal_uInt32 nOffset = 10 + numberOfContours + 2; - if (nOffset > nTableSize) + const sal_Int32 nMaxContours = (nTableSize - 10)/2; + if (numberOfContours > nMaxContours) return 0; for (i=0; i<numberOfContours; i++) { @@ -446,7 +446,7 @@ static int GetSimpleTTOutline(TrueTypeFont *ttf, sal_uInt32 glyphID, ControlPoin } sal_uInt16 instLen = GetUInt16(ptr, 10 + numberOfContours*2, 1); - nOffset = 10 + 2 * numberOfContours + 2 + instLen; + sal_uInt32 nOffset = 10 + 2 * numberOfContours + 2 + instLen; if (nOffset > nTableSize) return 0; const sal_uInt8* p = ptr + nOffset; commit 9af88a70e93ff146c264c33dae60f54c926941f7 Author: Caolán McNamara <[email protected]> Date: Thu Dec 4 16:29:39 2014 +0000 Revert "coverity#1242942 Use of untrusted scalar value" This reverts commit 093b3d30f257a01122042eb4d116ee54fbdb7033. it didn't help one bit to get coverity to see the bounds check Change-Id: Ibf01c7dea2b220290511871c2a650051295d389d diff --git a/sc/inc/table.hxx b/sc/inc/table.hxx index 73c453e..1053ea7 100644 --- a/sc/inc/table.hxx +++ b/sc/inc/table.hxx @@ -1169,15 +1169,6 @@ private: SCROW mnUBound; }; - bool ValidCol(SCCOL nCol) const - { - return nCol >= 0 && static_cast<size_t>(nCol) < SAL_N_ELEMENTS(aCol); - } - - bool ValidColRow(SCCOL nCol, SCROW nRow) const - { - return ValidCol(nCol) && ValidRow(nRow); - } }; #endif commit 612ebb3a545c4886d0123326abcdb951432dc4f2 Author: Caolán McNamara <[email protected]> Date: Thu Dec 4 16:22:46 2014 +0000 coverity#1256664 Division or modulo by float zero and coverity#1256664 Division or modulo by float zero Change-Id: I62c923aad9a21b517f6422365ccf94311e0709b6 diff --git a/vcl/opengl/program.cxx b/vcl/opengl/program.cxx index 8b92c4b..46552fd 100644 --- a/vcl/opengl/program.cxx +++ b/vcl/opengl/program.cxx @@ -217,14 +217,19 @@ void OpenGLProgram::SetTransform( const basegfx::B2DPoint& rX, const basegfx::B2DPoint& rY ) { + auto nTexWidth = rTexture.GetWidth(); + auto nTexHeight = rTexture.GetHeight(); + if (nTexWidth == 0 || nTexHeight == 0) + return; + GLuint nUniform = GetUniformLocation( rName ); const basegfx::B2DVector aXRel = rX - rNull; const basegfx::B2DVector aYRel = rY - rNull; const float aValues[] = { - (float) aXRel.getX()/rTexture.GetWidth(), (float) aXRel.getY()/rTexture.GetWidth(), 0, 0, - (float) aYRel.getX()/rTexture.GetHeight(), (float) aYRel.getY()/rTexture.GetHeight(), 0, 0, - 0, 0, 1, 0, - (float) rNull.getX(), (float) rNull.getY(), 0, 1 }; + (float) aXRel.getX()/nTexWidth, (float) aXRel.getY()/nTexWidth, 0, 0, + (float) aYRel.getX()/nTexHeight, (float) aYRel.getY()/nTexHeight, 0, 0, + 0, 0, 1, 0, + (float) rNull.getX(), (float) rNull.getY(), 0, 1 }; glm::mat4 mMatrix = glm::make_mat4( aValues ); glUniformMatrix4fv( nUniform, 1, GL_FALSE, glm::value_ptr( mMatrix ) ); }
_______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
