summaryrefslogtreecommitdiff
path: root/editeng
diff options
context:
space:
mode:
Diffstat (limited to 'editeng')
-rw-r--r--editeng/inc/editeng/eerdll.hxx1
-rw-r--r--editeng/qa/unit/core-test.cxx5
-rw-r--r--editeng/source/editeng/eerdll.cxx19
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()