Kaydet (Commit) 9041dac3 authored tarafından Stephan Bergmann's avatar Stephan Bergmann

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
üst 67a9f792
......@@ -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
{
......
......@@ -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())
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment