[Libreoffice-commits] core.git: include/vcl vcl/source
Stephan Bergmann
sbergman at redhat.com
Tue Apr 30 14:00:33 PDT 2013
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 <sbergman at 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())
{
More information about the Libreoffice-commits
mailing list