From 1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c Mon Sep 17 00:00:00 2001 From: Lorry Tar Creator Date: Tue, 27 Jun 2017 06:07:23 +0000 Subject: webkitgtk-2.16.5 --- .../Shared/Plugins/NPObjectMessageReceiver.cpp | 23 +++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) (limited to 'Source/WebKit2/Shared/Plugins/NPObjectMessageReceiver.cpp') diff --git a/Source/WebKit2/Shared/Plugins/NPObjectMessageReceiver.cpp b/Source/WebKit2/Shared/Plugins/NPObjectMessageReceiver.cpp index e5567cfff..328ef7b20 100644 --- a/Source/WebKit2/Shared/Plugins/NPObjectMessageReceiver.cpp +++ b/Source/WebKit2/Shared/Plugins/NPObjectMessageReceiver.cpp @@ -32,6 +32,8 @@ #include "NPRemoteObjectMap.h" #include "NPRuntimeUtilities.h" #include "NPVariantData.h" +#include "Plugin.h" +#include "PluginController.h" namespace WebKit { @@ -80,6 +82,8 @@ void NPObjectMessageReceiver::invoke(const NPIdentifierData& methodNameData, con NPVariant result; VOID_TO_NPVARIANT(result); + PluginController::PluginDestructionProtector protector(m_plugin->controller()); + returnValue = m_npObject->_class->invoke(m_npObject, methodNameData.createNPIdentifier(), arguments.data(), arguments.size(), &result); if (returnValue) { // Convert the NPVariant to an NPVariantData. @@ -108,6 +112,8 @@ void NPObjectMessageReceiver::invokeDefault(const Vector& argumen NPVariant result; VOID_TO_NPVARIANT(result); + PluginController::PluginDestructionProtector protector(m_plugin->controller()); + returnValue = m_npObject->_class->invokeDefault(m_npObject, arguments.data(), arguments.size(), &result); if (returnValue) { // Convert the NPVariant to an NPVariantData. @@ -142,14 +148,15 @@ void NPObjectMessageReceiver::getProperty(const NPIdentifierData& propertyNameDa NPVariant result; VOID_TO_NPVARIANT(result); + PluginController::PluginDestructionProtector protector(m_plugin->controller()); + returnValue = m_npObject->_class->getProperty(m_npObject, propertyNameData.createNPIdentifier(), &result); if (!returnValue) return; - // Convert the NPVariant to an NPVariantData. + resultData = m_npRemoteObjectMap->npVariantToNPVariantData(result, m_plugin); - // And release the result. releaseNPVariantValue(&result); } @@ -162,10 +169,10 @@ void NPObjectMessageReceiver::setProperty(const NPIdentifierData& propertyNameDa NPVariant propertyValue = m_npRemoteObjectMap->npVariantDataToNPVariant(propertyValueData, m_plugin); - // Set the property. + PluginController::PluginDestructionProtector protector(m_plugin->controller()); + returnValue = m_npObject->_class->setProperty(m_npObject, propertyNameData.createNPIdentifier(), &propertyValue); - // And release the value. releaseNPVariantValue(&propertyValue); } @@ -213,17 +220,15 @@ void NPObjectMessageReceiver::construct(const Vector& argumentsDa NPVariant result; VOID_TO_NPVARIANT(result); + PluginController::PluginDestructionProtector protector(m_plugin->controller()); + returnValue = m_npObject->_class->construct(m_npObject, arguments.data(), arguments.size(), &result); - if (returnValue) { - // Convert the NPVariant to an NPVariantData. + if (returnValue) resultData = m_npRemoteObjectMap->npVariantToNPVariantData(result, m_plugin); - } - // Release all arguments. for (size_t i = 0; i < argumentsData.size(); ++i) releaseNPVariantValue(&arguments[i]); - // And release the result. releaseNPVariantValue(&result); } -- cgit v1.2.1