include/vcl/builder.hxx       |   11 +++++++++--
 vcl/source/window/builder.cxx |    2 +-
 2 files changed, 10 insertions(+), 3 deletions(-)

New commits:
commit 9041dac37f912a6f183be9f6b6558f1ef44280c0
Author: Stephan Bergmann <sberg...@redhat.com>
Date:   Tue Apr 30 22:57:50 2013 +0200

    Blind fix for MSVC
    
    ...preventing full instantiation of boost::ptr_map<OUString,osl::Module> 
(which
    fails because osl::Module is not copy-constructible) which MSVC thinks is
    necessary if that template instantiation inherits the VCL_DLLPUBLIC from the
    VclBuilder class that uses it.
    
    Change-Id: I8cd5608c80d7ce9b12ba678430f5ef283a427e93

diff --git a/include/vcl/builder.hxx b/include/vcl/builder.hxx
index ff72766..fff53c3 100644
--- a/include/vcl/builder.hxx
+++ b/include/vcl/builder.hxx
@@ -30,17 +30,24 @@ class DateField;
 class TimeField;
 class VclMultiLineEdit;
 
+namespace vcl { namespace detail {
+
+class SAL_DLLPUBLIC_TEMPLATE ModuleMap:
+    public boost::ptr_map<OUString, osl::Module>
+{};
+
+} }
+
 class VCL_DLLPUBLIC VclBuilder
 {
 public:
     typedef std::map<OString, OString> stringmap;
     typedef Window* (*customMakeWidget)(Window *pParent, stringmap &rVec);
 private:
-    typedef boost::ptr_map<OUString, osl::Module> ModuleMap;
     //We store these until the builder is deleted, that way we can use the
     //ui-previewer on custom widgets and guarantee the modules they are from
     //exist for the duration of the dialog
-    ModuleMap m_aModuleMap;
+    vcl::detail::ModuleMap m_aModuleMap;
 
     struct PackingData
     {
diff --git a/vcl/source/window/builder.cxx b/vcl/source/window/builder.cxx
index 1cf5b8b..a879eb3 100644
--- a/vcl/source/window/builder.cxx
+++ b/vcl/source/window/builder.cxx
@@ -1215,7 +1215,7 @@ Window *VclBuilder::makeObject(Window *pParent, const 
OString &name, const OStri
             OUString sFunction(OStringToOUString(OString("make") + 
name.copy(nDelim+1), RTL_TEXTENCODING_UTF8));
 #ifndef DISABLE_DYNLOADING
             OUString sModule = sModuleBuf.makeStringAndClear();
-            ModuleMap::iterator aI = m_aModuleMap.find(sModule);
+            vcl::detail::ModuleMap::iterator aI = m_aModuleMap.find(sModule);
             osl::Module* pModule = NULL;
             if (aI == m_aModuleMap.end())
             {
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to