[macOS] Use mach_port_mod_refs instead of mach_port_destroy
authorcdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 10 Dec 2018 17:50:38 +0000 (17:50 +0000)
committercdumez@apple.com <cdumez@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 10 Dec 2018 17:50:38 +0000 (17:50 +0000)
https://bugs.webkit.org/show_bug.cgi?id=192532
rdar://problem/45731047

Patch by Darin Adler <darin@apple.com> on 2018-12-10
Reviewed by Chris Dumez.

* Plugins/Hosted/NetscapePluginHostManager.mm:
(WebKit::NetscapePluginHostManager::hostForPlugin): Use mach_port_mod_refs.
* Plugins/Hosted/NetscapePluginHostProxy.mm:
(WebKit::NetscapePluginHostProxy::~NetscapePluginHostProxy): Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@239032 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKitLegacy/mac/ChangeLog
Source/WebKitLegacy/mac/Plugins/Hosted/NetscapePluginHostManager.mm
Source/WebKitLegacy/mac/Plugins/Hosted/NetscapePluginHostProxy.mm

index 7070cf7..368e71e 100644 (file)
@@ -1,3 +1,16 @@
+2018-12-10  Darin Adler  <darin@apple.com>
+
+        [macOS] Use mach_port_mod_refs instead of mach_port_destroy
+        https://bugs.webkit.org/show_bug.cgi?id=192532
+        rdar://problem/45731047
+
+        Reviewed by Chris Dumez.
+
+        * Plugins/Hosted/NetscapePluginHostManager.mm:
+        (WebKit::NetscapePluginHostManager::hostForPlugin): Use mach_port_mod_refs.
+        * Plugins/Hosted/NetscapePluginHostProxy.mm:
+        (WebKit::NetscapePluginHostProxy::~NetscapePluginHostProxy): Ditto.
+
 2018-12-05  Wenson Hsieh  <wenson_hsieh@apple.com>
 
         Turn WritingDirection into an enum class
index e150a37..1f32dc9 100644 (file)
@@ -85,7 +85,7 @@ NetscapePluginHostProxy* NetscapePluginHostManager::hostForPlugin(const WTF::Str
     mach_port_t pluginHostPort = MACH_PORT_NULL;
     ProcessSerialNumber pluginHostPSN;
     if (!spawnPluginHost(pluginPath, pluginArchitecture, clientPort, pluginHostPort, pluginHostPSN)) {
-        mach_port_destroy(mach_task_self(), clientPort);
+        mach_port_mod_refs(mach_task_self(), clientPort, MACH_PORT_RIGHT_RECEIVE, -1);
         m_pluginHosts.remove(result.iterator);
         return nullptr;
     }
index f1c4ad3..34273af 100644 (file)
@@ -134,11 +134,10 @@ NetscapePluginHostProxy::~NetscapePluginHostProxy()
 {
     pluginProxyMap().remove(m_clientPort);
 
-    // Free the port set
     if (m_portSet) {
         mach_port_extract_member(mach_task_self(), m_clientPort, m_portSet);
         mach_port_extract_member(mach_task_self(), CFMachPortGetPort(m_deadNameNotificationPort.get()), m_portSet);
-        mach_port_destroy(mach_task_self(), m_portSet);
+        mach_port_mod_refs(mach_task_self(), m_portSet, MACH_PORT_RIGHT_PORT_SET, -1);
         m_portSet = MACH_PORT_NULL;
     }