Commits

Anonymous committed 5afe1c6

sb140: #i117082# extra indirections to apeace MSC

Comments (0)

Files changed (3)

editeng/inc/editeng/unotext.hxx

 #ifndef _SVX_UNOTEXT_HXX
 #define _SVX_UNOTEXT_HXX
 
+#include "sal/config.h"
+
+#include "boost/noncopyable.hpp"
 #include <com/sun/star/container/XNameContainer.hpp>
 #include <com/sun/star/text/XTextRange.hpp>
 #include <com/sun/star/text/XText.hpp>
         ::com::sun::star::text::XTextCopy,
         ::com::sun::star::container::XEnumerationAccess,
         ::com::sun::star::text::XTextRangeMover >
-    SvxUnoTextBase_Base;
+    SvxUnoTextBase_Base0;
+
+// Extra indirection to keep MSC from trying to (unsuccessfully) fully
+// instantiate a non-DLLPUBLIC template base class of a DLLPUBLIC class:
+class SvxUnoTextBase_Base:
+    public SvxUnoTextBase_Base0, private boost::noncopyable
+{
+protected:
+    explicit SvxUnoTextBase_Base(SvxUnoTextBase_Base const &) throw ();
+    explicit SvxUnoTextBase_Base(SvxItemPropertySet const * set) throw ();
+    SvxUnoTextBase_Base(
+        SvxEditSource const * source, SvxItemPropertySet const * set) throw ();
+    virtual ~SvxUnoTextBase_Base() throw ();
+};
 
 class EDITENG_DLLPUBLIC SvxUnoTextBase : public SvxUnoTextBase_Base
 {
     cppu::AggImplInheritanceHelper1<
         SvxUnoTextRangeBase,
         ::com::sun::star::text::XTextCursor >
-    SvxUnoTextCursor_Base;
+    SvxUnoTextCursor_Base0;
+
+// Extra indirection to keep MSC from trying to (unsuccessfully) fully
+// instantiate a non-DLLPUBLIC template base class of a DLLPUBLIC class:
+class SvxUnoTextCursor_Base:
+    public SvxUnoTextCursor_Base0, private boost::noncopyable
+{
+protected:
+    explicit SvxUnoTextCursor_Base(SvxUnoTextCursor_Base const & base) throw ();
+    explicit SvxUnoTextCursor_Base(SvxUnoTextRangeBase const & base) throw ();
+    virtual ~SvxUnoTextCursor_Base() throw ();
+};
 
 class EDITENG_DLLPUBLIC SvxUnoTextCursor : public SvxUnoTextCursor_Base
 {

editeng/source/uno/unotext.cxx

 
 // UNO3_GETIMPLEMENTATION2_IMPL( SvxUnoText, SvxUnoTextRangeBase );
 
+SvxUnoTextBase_Base::SvxUnoTextBase_Base(SvxUnoTextBase_Base const & base)
+    throw ():
+    SvxUnoTextBase_Base0(base)
+{}
+
+SvxUnoTextBase_Base::SvxUnoTextBase_Base(SvxItemPropertySet const * set)
+    throw ():
+    SvxUnoTextBase_Base0(set)
+{}
+
+SvxUnoTextBase_Base::SvxUnoTextBase_Base(
+    SvxEditSource const * source, SvxItemPropertySet const * set) throw ():
+    SvxUnoTextBase_Base0(source, set)
+{}
+
+SvxUnoTextBase_Base::~SvxUnoTextBase_Base() throw () {}
+
 SvxUnoTextBase::SvxUnoTextBase() throw()
 : SvxUnoTextBase_Base( static_cast< SvxItemPropertySet * >(NULL) )
 {

editeng/source/uno/unotext2.cxx

 // class SvxUnoTextCursor
 // ====================================================================
 
+SvxUnoTextCursor_Base::SvxUnoTextCursor_Base(SvxUnoTextCursor_Base const & base)
+    throw ():
+    SvxUnoTextCursor_Base0(base)
+{}
+
+SvxUnoTextCursor_Base::SvxUnoTextCursor_Base(SvxUnoTextRangeBase const & base)
+    throw ():
+    SvxUnoTextCursor_Base0(base)
+{}
+
+SvxUnoTextCursor_Base::~SvxUnoTextCursor_Base() throw () {}
+
 uno::Reference< uno::XInterface > SvxUnoTextCursor_NewInstance()
 {
 	SvxUnoText aText;
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.