View | Details | Raw Unified | Return to issue 113608
Collapse All | Expand All

(-)orig/svx/inc/svx/svdobj.hxx (-1 / +1 lines)
Lines 1127-1133 Link Here
1127
private:
1127
private:
1128
	/** only for internal use!
1128
	/** only for internal use!
1129
	*/
1129
	*/
1130
	SvxShape* getSvxShape() const;
1130
	SvxShape* getSvxShape();
1131
1131
1132
	/** do not use directly, always use getSvxShape() if you have to! */
1132
	/** do not use directly, always use getSvxShape() if you have to! */
1133
	SvxShape*   mpSvxShape;
1133
	SvxShape*   mpSvxShape;
(-)orig/svx/source/svdraw/svdobj.cxx (-3 / +6 lines)
Lines 2914-2930 Link Here
2914
}
2914
}
2915
2915
2916
/** only for internal use! */
2916
/** only for internal use! */
2917
SvxShape* SdrObject::getSvxShape() const
2917
SvxShape* SdrObject::getSvxShape()
2918
{
2918
{
2919
    DBG_TESTSOLARMUTEX();
2919
    DBG_TESTSOLARMUTEX();
2920
        // retrieving the impl pointer and subsequently using it is not thread-safe, of course, so it needs to be
2920
        // retrieving the impl pointer and subsequently using it is not thread-safe, of course, so it needs to be
2921
        // guarded by the SolarMutex
2921
        // guarded by the SolarMutex
2922
2922
2923
#if OSL_DEBUG_LEVE > 0
2924
    uno::Reference< uno::XInterface > xShape( maWeakUnoShape );
2923
    uno::Reference< uno::XInterface > xShape( maWeakUnoShape );
2925
    OSL_ENSURE( !( !xShapeGuard.is() && mpSvxShape ),
2924
#if OSL_DEBUG_LEVE > 0
2925
    OSL_ENSURE( !( !xShape.is() && mpSvxShape ),
2926
        "SdrObject::getSvxShape: still having IMPL-Pointer to dead object!" );
2926
        "SdrObject::getSvxShape: still having IMPL-Pointer to dead object!" );
2927
#endif
2927
#endif
2928
    //#113608#, make sure mpSvxShape is always synchronized with maWeakUnoShape
2929
    if ( mpSvxShape && !xShape.is() )
2930
        mpSvxShape = NULL;
2928
2931
2929
	return mpSvxShape;
2932
	return mpSvxShape;
2930
}
2933
}

Return to issue 113608