Kaydet (Commit) 5ea5c5a5 authored tarafından Cédric Bosdonnat's avatar Cédric Bosdonnat

Revert "fdo#37403: Fixed crasher by using boost::shared_ptr"

This reverts commit b564df24. Using
shared_ptr wasn't the ideal solution.

Conflicts:

	svx/source/svdraw/svdorect.cxx
üst 7d700ecf
...@@ -31,7 +31,6 @@ ...@@ -31,7 +31,6 @@
#include <svx/svdotext.hxx> #include <svx/svdotext.hxx>
#include "svx/svxdllapi.h" #include "svx/svxdllapi.h"
#include <boost/shared_ptr.hpp>
//************************************************************ //************************************************************
// Vorausdeklarationen // Vorausdeklarationen
...@@ -61,7 +60,7 @@ protected: ...@@ -61,7 +60,7 @@ protected:
virtual sdr::contact::ViewContact* CreateObjectSpecificViewContact(); virtual sdr::contact::ViewContact* CreateObjectSpecificViewContact();
virtual sdr::properties::BaseProperties* CreateObjectSpecificProperties(); virtual sdr::properties::BaseProperties* CreateObjectSpecificProperties();
::boost::shared_ptr< XPolygon > mpXPoly; XPolygon* mpXPoly;
protected: protected:
XPolygon ImpCalcXPoly(const Rectangle& rRect1, long nRad1) const; XPolygon ImpCalcXPoly(const Rectangle& rRect1, long nRad1) const;
......
...@@ -290,7 +290,7 @@ basegfx::B2DPolygon SdrCircObj::ImpCalcXPolyCirc(const SdrObjKind eCicrleKind, c ...@@ -290,7 +290,7 @@ basegfx::B2DPolygon SdrCircObj::ImpCalcXPolyCirc(const SdrObjKind eCicrleKind, c
void SdrCircObj::RecalcXPoly() void SdrCircObj::RecalcXPoly()
{ {
const basegfx::B2DPolygon aPolyCirc(ImpCalcXPolyCirc(meCircleKind, aRect, nStartWink, nEndWink)); const basegfx::B2DPolygon aPolyCirc(ImpCalcXPolyCirc(meCircleKind, aRect, nStartWink, nEndWink));
mpXPoly.reset( new XPolygon(aPolyCirc) ); mpXPoly = new XPolygon(aPolyCirc);
} }
void SdrCircObj::TakeObjNameSingul(XubString& rName) const void SdrCircObj::TakeObjNameSingul(XubString& rName) const
......
...@@ -77,18 +77,21 @@ sdr::contact::ViewContact* SdrRectObj::CreateObjectSpecificViewContact() ...@@ -77,18 +77,21 @@ sdr::contact::ViewContact* SdrRectObj::CreateObjectSpecificViewContact()
TYPEINIT1(SdrRectObj,SdrTextObj); TYPEINIT1(SdrRectObj,SdrTextObj);
SdrRectObj::SdrRectObj() SdrRectObj::SdrRectObj()
: mpXPoly(0L)
{ {
bClosedObj=sal_True; bClosedObj=sal_True;
} }
SdrRectObj::SdrRectObj(const Rectangle& rRect) SdrRectObj::SdrRectObj(const Rectangle& rRect)
: SdrTextObj(rRect) : SdrTextObj(rRect),
mpXPoly(NULL)
{ {
bClosedObj=sal_True; bClosedObj=sal_True;
} }
SdrRectObj::SdrRectObj(SdrObjKind eNewTextKind) SdrRectObj::SdrRectObj(SdrObjKind eNewTextKind)
: SdrTextObj(eNewTextKind) : SdrTextObj(eNewTextKind),
mpXPoly(NULL)
{ {
DBG_ASSERT(eTextKind==OBJ_TEXT || eTextKind==OBJ_TEXTEXT || DBG_ASSERT(eTextKind==OBJ_TEXT || eTextKind==OBJ_TEXTEXT ||
eTextKind==OBJ_OUTLINETEXT || eTextKind==OBJ_TITLETEXT, eTextKind==OBJ_OUTLINETEXT || eTextKind==OBJ_TITLETEXT,
...@@ -97,7 +100,8 @@ SdrRectObj::SdrRectObj(SdrObjKind eNewTextKind) ...@@ -97,7 +100,8 @@ SdrRectObj::SdrRectObj(SdrObjKind eNewTextKind)
} }
SdrRectObj::SdrRectObj(SdrObjKind eNewTextKind, const Rectangle& rRect) SdrRectObj::SdrRectObj(SdrObjKind eNewTextKind, const Rectangle& rRect)
: SdrTextObj(eNewTextKind,rRect) : SdrTextObj(eNewTextKind,rRect),
mpXPoly(NULL)
{ {
DBG_ASSERT(eTextKind==OBJ_TEXT || eTextKind==OBJ_TEXTEXT || DBG_ASSERT(eTextKind==OBJ_TEXT || eTextKind==OBJ_TEXTEXT ||
eTextKind==OBJ_OUTLINETEXT || eTextKind==OBJ_TITLETEXT, eTextKind==OBJ_OUTLINETEXT || eTextKind==OBJ_TITLETEXT,
...@@ -107,11 +111,19 @@ SdrRectObj::SdrRectObj(SdrObjKind eNewTextKind, const Rectangle& rRect) ...@@ -107,11 +111,19 @@ SdrRectObj::SdrRectObj(SdrObjKind eNewTextKind, const Rectangle& rRect)
SdrRectObj::~SdrRectObj() SdrRectObj::~SdrRectObj()
{ {
if(mpXPoly)
{
delete mpXPoly;
}
} }
void SdrRectObj::SetXPolyDirty() void SdrRectObj::SetXPolyDirty()
{ {
mpXPoly.reset(); if(mpXPoly)
{
delete mpXPoly;
mpXPoly = 0L;
}
} }
XPolygon SdrRectObj::ImpCalcXPoly(const Rectangle& rRect1, long nRad1) const XPolygon SdrRectObj::ImpCalcXPoly(const Rectangle& rRect1, long nRad1) const
...@@ -140,7 +152,7 @@ XPolygon SdrRectObj::ImpCalcXPoly(const Rectangle& rRect1, long nRad1) const ...@@ -140,7 +152,7 @@ XPolygon SdrRectObj::ImpCalcXPoly(const Rectangle& rRect1, long nRad1) const
void SdrRectObj::RecalcXPoly() void SdrRectObj::RecalcXPoly()
{ {
mpXPoly.reset( new XPolygon(ImpCalcXPoly(aRect,GetEckenradius())) ); mpXPoly = new XPolygon(ImpCalcXPoly(aRect,GetEckenradius()));
} }
const XPolygon& SdrRectObj::GetXPoly() const const XPolygon& SdrRectObj::GetXPoly() const
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment