summaryrefslogtreecommitdiffstats
path: root/ppapi/proxy/plugin_var_tracker.cc
diff options
context:
space:
mode:
authordmichael@chromium.org <dmichael@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-31 21:46:59 +0000
committerdmichael@chromium.org <dmichael@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-05-31 21:46:59 +0000
commitd51d8b65bb56311e3514d476f2b048dce57ec116 (patch)
tree8cc50fb8108fcb775942b6711e08a3559c655335 /ppapi/proxy/plugin_var_tracker.cc
parente9d91ff8ae5d3c6412db8bc81aefdf62bb7f5200 (diff)
downloadchromium_src-d51d8b65bb56311e3514d476f2b048dce57ec116.zip
chromium_src-d51d8b65bb56311e3514d476f2b048dce57ec116.tar.gz
chromium_src-d51d8b65bb56311e3514d476f2b048dce57ec116.tar.bz2
PPAPI: Unlock when deallocating script objects at shutdown
(Note, I tried to add a test, but crbug.com/244900 makes it hard or impossible to do... see https://codereview.chromium.org/16114007/#ps8001) BUG=243118 Review URL: https://chromiumcodereview.appspot.com/15992006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@203487 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/proxy/plugin_var_tracker.cc')
-rw-r--r--ppapi/proxy/plugin_var_tracker.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/ppapi/proxy/plugin_var_tracker.cc b/ppapi/proxy/plugin_var_tracker.cc
index 0b583d6..585454b 100644
--- a/ppapi/proxy/plugin_var_tracker.cc
+++ b/ppapi/proxy/plugin_var_tracker.cc
@@ -13,6 +13,7 @@
#include "ppapi/proxy/ppapi_messages.h"
#include "ppapi/proxy/proxy_object_var.h"
#include "ppapi/shared_impl/api_id.h"
+#include "ppapi/shared_impl/proxy_lock.h"
#include "ppapi/shared_impl/var.h"
namespace ppapi {
@@ -175,7 +176,7 @@ void PluginVarTracker::DidDeleteInstance(PP_Instance instance) {
if (!found->second.plugin_object_id) {
// This object is for the freed instance and the plugin is not holding
// any references to it. Deallocate immediately.
- found->second.ppp_class->Deallocate(found->first);
+ CallWhileUnlocked(found->second.ppp_class->Deallocate, found->first);
user_data_to_plugin_.erase(found);
} else {
// The plugin is holding refs to this object. We don't want to call