diff options
Diffstat (limited to 'editeng')
-rw-r--r-- | editeng/inc/editeng/eerdll.hxx | 1 | ||||
-rw-r--r-- | editeng/qa/unit/core-test.cxx | 5 | ||||
-rw-r--r-- | editeng/source/editeng/eerdll.cxx | 19 |
3 files changed, 18 insertions, 7 deletions
diff --git a/editeng/inc/editeng/eerdll.hxx b/editeng/inc/editeng/eerdll.hxx index 00094cfbc436..226aefe00479 100644 --- a/editeng/inc/editeng/eerdll.hxx +++ b/editeng/inc/editeng/eerdll.hxx @@ -53,6 +53,7 @@ public: ResMgr* GetResMgr() const { return pResMgr; } GlobalEditData* GetGlobalData() const { return pGlobalData; } static EditDLL& Get(); + static void Release(); }; #define EE_DLL() EditDLL::Get() diff --git a/editeng/qa/unit/core-test.cxx b/editeng/qa/unit/core-test.cxx index b8e31119f9eb..49a6efba3070 100644 --- a/editeng/qa/unit/core-test.cxx +++ b/editeng/qa/unit/core-test.cxx @@ -74,6 +74,7 @@ void Test::setUp() void Test::tearDown() { SfxItemPool::Free(mpItemPool); + EditDLL::Release(); test::BootstrapFixture::tearDown(); } @@ -83,8 +84,8 @@ void Test::testConstruction() EditEngine aEngine(mpItemPool); // TODO: This currently causes segfault in vcl. -// rtl::OUString aParaText = "I am Edit Engine."; -// aEngine.SetText(aParaText); + rtl::OUString aParaText = "I am Edit Engine."; + aEngine.SetText(aParaText); } CPPUNIT_TEST_SUITE_REGISTRATION(Test); diff --git a/editeng/source/editeng/eerdll.cxx b/editeng/source/editeng/eerdll.cxx index 1e0f3e4241f4..ccec18e19628 100644 --- a/editeng/source/editeng/eerdll.cxx +++ b/editeng/source/editeng/eerdll.cxx @@ -72,18 +72,27 @@ #include <editeng/xmlcnitm.hxx> #include <editeng/forbiddencharacterstable.hxx> #include <editeng/justifyitem.hxx> -#include <rtl/instance.hxx> + +#include <boost/scoped_ptr.hpp> using namespace ::com::sun::star; -namespace -{ - class theEditDLL : public rtl::Static<EditDLL, theEditDLL> {}; +namespace { + +boost::scoped_ptr<EditDLL> pDLL; + } EditDLL& EditDLL::Get() { - return theEditDLL::get(); + if (!pDLL) + pDLL.reset(new EditDLL); + return *pDLL; +} + +void EditDLL::Release() +{ + pDLL.reset(); } GlobalEditData::GlobalEditData() |