summaryrefslogtreecommitdiffstats
path: root/o3d/plugin
diff options
context:
space:
mode:
authorkbr@google.com <kbr@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-02 21:53:49 +0000
committerkbr@google.com <kbr@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-02 21:53:49 +0000
commitff309b3ff56471cf49b9a95378078ed37437192f (patch)
tree133f2fc49c70ed9944fdbdf16ac0298ba942e4f4 /o3d/plugin
parent71cb533c8712331906346ddea2fce0c3fccec78c (diff)
downloadchromium_src-ff309b3ff56471cf49b9a95378078ed37437192f.zip
chromium_src-ff309b3ff56471cf49b9a95378078ed37437192f.tar.gz
chromium_src-ff309b3ff56471cf49b9a95378078ed37437192f.tar.bz2
Prevent Client::Tick() from causing reentrancy in the plugin on Mac OS X.
Tested with client application. BUG=none TEST=none Review URL: http://codereview.chromium.org/2451002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48770 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'o3d/plugin')
-rw-r--r--o3d/plugin/mac/plugin_mac.mm7
1 files changed, 4 insertions, 3 deletions
diff --git a/o3d/plugin/mac/plugin_mac.mm b/o3d/plugin/mac/plugin_mac.mm
index 488a7b6..26c8f7c 100644
--- a/o3d/plugin/mac/plugin_mac.mm
+++ b/o3d/plugin/mac/plugin_mac.mm
@@ -237,9 +237,10 @@ void RenderTimer::TimerCallback(CFRunLoopTimerRef timer, void* info) {
NPP instance = instances_[i];
PluginObject* obj = static_cast<PluginObject*>(instance->pdata);
- // RenderClient() may cause events to be processed, leading to
- // reentrant calling of this code. Detect and avoid this case.
- if (obj->client()->IsRendering()) {
+ // RenderClient() and Tick() may cause events to be processed,
+ // leading to reentrant calling of this code. Detect and avoid
+ // this case.
+ if (obj->client()->IsRendering() || obj->client()->IsTicking()) {
continue;
}