diff options
author | dmichael@chromium.org <dmichael@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-31 21:46:59 +0000 |
---|---|---|
committer | dmichael@chromium.org <dmichael@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-05-31 21:46:59 +0000 |
commit | d51d8b65bb56311e3514d476f2b048dce57ec116 (patch) | |
tree | 8cc50fb8108fcb775942b6711e08a3559c655335 /ppapi/proxy/plugin_var_tracker.cc | |
parent | e9d91ff8ae5d3c6412db8bc81aefdf62bb7f5200 (diff) | |
download | chromium_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.cc | 3 |
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 |