summaryrefslogtreecommitdiff
path: root/cpp/test/uwp/controller/ViewController.xaml.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/test/uwp/controller/ViewController.xaml.cpp')
-rw-r--r--cpp/test/uwp/controller/ViewController.xaml.cpp28
1 files changed, 3 insertions, 25 deletions
diff --git a/cpp/test/uwp/controller/ViewController.xaml.cpp b/cpp/test/uwp/controller/ViewController.xaml.cpp
index a2d953ad84d..99d594fb81e 100644
--- a/cpp/test/uwp/controller/ViewController.xaml.cpp
+++ b/cpp/test/uwp/controller/ViewController.xaml.cpp
@@ -197,7 +197,6 @@ MainHelperI::run()
if(_dllTestShutdown == 0)
{
print("failed to find dllTestShutdown function from `" + _dll + "'");
- _controller->unloadDll(_dll);
completed(EXIT_FAILURE);
return;
}
@@ -206,7 +205,6 @@ MainHelperI::run()
if(sym == 0)
{
print("failed to find dllMain function from `" + _dll + "'");
- _controller->unloadDll(_dll);
completed(EXIT_FAILURE);
return;
}
@@ -233,7 +231,6 @@ MainHelperI::run()
completed(EXIT_FAILURE);
}
delete[] argv;
- _controller->unloadDll(_dll);
});
_thread = move(t);
}
@@ -491,36 +488,17 @@ HINSTANCE
ViewController::loadDll(const string& name)
{
unique_lock<mutex> lock(_mutex);
- map<string, pair<HINSTANCE, unsigned int>>::iterator p = _dlls.find(name);
+ map<string, HINSTANCE>::iterator p = _dlls.find(name);
if(p == _dlls.end())
{
HINSTANCE hnd = LoadPackagedLibrary(Ice::stringToWstring(name).c_str(), 0);
- p = _dlls.insert(make_pair(name, make_pair(hnd, 0))).first;
- }
- ++p->second.second;
- return p->second.first;
-}
-
-void
-ViewController::unloadDll(const string& name)
-{
- unique_lock<mutex> lock(_mutex);
- map<string, pair<HINSTANCE, unsigned int>>::iterator p = _dlls.find(name);
- assert(p != _dlls.end());
- if(--p->second.second == 0)
- {
- FreeLibrary(p->second.first);
- _dlls.erase(p);
+ p = _dlls.insert(make_pair(name, hnd)).first;
}
+ return p->second;
}
ViewController::~ViewController()
{
- for(map<string, pair<HINSTANCE, unsigned int>>::const_iterator p = _dlls.begin(); p != _dlls.end(); ++p)
- {
- FreeLibrary(p->second.first);
- }
-
if(controllerHelper)
{
delete controllerHelper;