<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>60655</bug_id>
          
          <creation_ts>2011-05-11 13:37:16 -0700</creation_ts>
          <short_desc>WebKit2 doesn&apos;t build on Mac with strict PassOwnPtr</short_desc>
          <delta_ts>2011-05-11 19:50:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>402228</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-05-11 13:37:16 -0700</bug_when>
    <thetext>Index: Source/JavaScriptCore/wtf/PassOwnPtr.h
===================================================================
--- Source/JavaScriptCore/wtf/PassOwnPtr.h	(revision 86247)
+++ Source/JavaScriptCore/wtf/PassOwnPtr.h	(working copy)
@@ -33,7 +33,7 @@
 
 #if !PLATFORM(CHROMIUM) &amp;&amp; !PLATFORM(WIN)
 // Remove this once we make all WebKit code compatible with stricter rules about PassOwnPtr.
-#define LOOSE_PASS_OWN_PTR
+// #define LOOSE_PASS_OWN_PTR
 #endif
 
 namespace WTF {




Build WebKit2 of project WebKit2 with configuration Debug

CompileC /Users/abarth/svn/webkit/WebKitBuild/WebKit2.build/Debug/WebKit2.build/Objects-normal/x86_64/PluginControllerProxyMessageReceiver.o /Users/abarth/svn/webkit/WebKitBuild/Debug/DerivedSources/WebKit2/PluginControllerProxyMessageReceiver.cpp normal x86_64 c++ com.apple.compilers.gcc.4_2
cd /Users/abarth/svn/webkit/Source/WebKit2
setenv LANG en_US.US-ASCII
/Developer/usr/bin/gcc-4.2 -x c++ -arch x86_64 -fmessage-length=0 -pipe -Wno-trigraphs -fno-exceptions -fno-rtti -fpascal-strings -fasm-blocks -O0 -Werror -Wmissing-prototypes -Wreturn-type -Wnon-virtual-dtor -Wunused-variable -Wnewline-eof -DDISABLE_THREAD_CHECK -DENABLE_WEBGL -DENABLE_3D_RENDERING -DENABLE_BLOB -DENABLE_CHANNEL_MESSAGING -DENABLE_CLIENT_BASED_GEOLOCATION -DENABLE_DATABASE -DENABLE_DATALIST -DENABLE_DETAILS -DENABLE_DOM_STORAGE -DENABLE_EVENTSOURCE -DENABLE_FILTERS -DENABLE_FULLSCREEN_API -DENABLE_GEOLOCATION -DENABLE_ICONDATABASE -DENABLE_JAVASCRIPT_DEBUGGER -DENABLE_MATHML -DENABLE_METER_TAG -DENABLE_OFFLINE_WEB_APPLICATIONS -DENABLE_PROGRESS_TAG -DENABLE_SHARED_WORKERS -DENABLE_SVG -DENABLE_SVG_ANIMATION -DENABLE_SVG_AS_IMAGE -DENABLE_SVG_DOM_OBJC_BINDINGS -DENABLE_SVG_FONTS -DENABLE_SVG_FOREIGN_OBJECT -DENABLE_SVG_USE -DENABLE_VIDEO -DENABLE_WEB_SOCKETS -DENABLE_WORKERS -DENABLE_XPATH -DENABLE_XSLT -DFRAMEWORK_NAME=WebKit2 -fvisibility=hidden -fvisibility-inlines-hidden -fno-threadsafe-statics -mmacosx-version-min=10.6 -gdwarf-2 -I/Users/abarth/svn/webkit/WebKitBuild/WebKit2.build/Debug/WebKit2.build/WebKit2.hmap -Wall -Wextra -Wchar-subscripts -Wextra-tokens -Wformat-security -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wno-unused-parameter -Wpacked -Wpointer-arith -Wredundant-decls -Wundef -Wwrite-strings -F/Users/abarth/svn/webkit/WebKitBuild/Debug -F/Users/abarth/svn/webkit/WebKitBuild/Debug -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks -F/System/Library/Frameworks/Carbon.framework/Frameworks -F/System/Library/Frameworks/Quartz.framework/Frameworks -F/System/Library/Frameworks/CoreServices.framework/Frameworks -I/Users/abarth/svn/webkit/WebKitBuild/Debug/include -I/Users/abarth/svn/webkit/WebKitBuild/Debug/WebCore.framework/PrivateHeaders/ForwardingHeaders -I/Users/abarth/svn/webkit/WebKitBuild/Debug/WebCore.framework/PrivateHeaders/icu -I/Users/abarth/svn/webkit/WebKitBuild/Debug/usr/local/include -I/Users/abarth/svn/webkit/WebKitBuild/Debug/DerivedSources/WebKit2 -I/Users/abarth/svn/webkit/WebKitBuild/WebKit2.build/Debug/WebKit2.build/DerivedSources/x86_64 -I/Users/abarth/svn/webkit/WebKitBuild/WebKit2.build/Debug/WebKit2.build/DerivedSources -include /var/folders/Do/DoMaph5qFVqgE67TB2lr3k+++TI/-Caches-/com.apple.Xcode.501/SharedPrecompiledHeaders/WebKit2Prefix-culbqpxqjzqeiadivtmxqkvsjlgk/WebKit2Prefix.h -c /Users/abarth/svn/webkit/WebKitBuild/Debug/DerivedSources/WebKit2/PluginControllerProxyMessageReceiver.cpp -o /Users/abarth/svn/webkit/WebKitBuild/WebKit2.build/Debug/WebKit2.build/Objects-normal/x86_64/PluginControllerProxyMessageReceiver.o

/Users/abarth/svn/webkit/Source/WebKit2/Platform/CoreIPC/HandleMessage.h: In function &apos;void CoreIPC::handleMessageDelayed(CoreIPC::Connection*, CoreIPC::ArgumentDecoder*, CoreIPC::ArgumentEncoder*, C*, MF) [with T = Messages::PluginControllerProxy::HandleMouseEvent, C = WebKit::PluginControllerProxy, MF = void (WebKit::PluginControllerProxy::*)(const WebKit::WebMouseEvent&amp;, WTF::PassRefPtr&lt;Messages::PluginControllerProxy::HandleMouseEvent::DelayedReply&gt;)]&apos;:
/Users/abarth/svn/webkit/WebKitBuild/Debug/DerivedSources/WebKit2/PluginControllerProxyMessageReceiver.cpp:149:   instantiated from here
/Users/abarth/svn/webkit/Source/WebKit2/Platform/CoreIPC/HandleMessage.h:315: error: no matching function for call to &apos;Messages::PluginControllerProxy::HandleMouseEvent::DelayedReply::DelayedReply(CoreIPC::Connection*&amp;, CoreIPC::ArgumentEncoder*&amp;)&apos;
/Users/abarth/svn/webkit/WebKitBuild/Debug/DerivedSources/WebKit2/PluginControllerProxyMessageReceiver.cpp:44: note: candidates are: Messages::PluginControllerProxy::HandleMouseEvent::DelayedReply::DelayedReply(WTF::PassRefPtr&lt;CoreIPC::Connection&gt;, WTF::PassOwnPtr&lt;CoreIPC::ArgumentEncoder&gt;)
/Users/abarth/svn/webkit/WebKitBuild/Debug/DerivedSources/WebKit2/PluginControllerProxyMessages.h:203: note:                 Messages::PluginControllerProxy::HandleMouseEvent::DelayedReply::DelayedReply(const Messages::PluginControllerProxy::HandleMouseEvent::DelayedReply&amp;)

CompileC /Users/abarth/svn/webkit/WebKitBuild/WebKit2.build/Debug/WebKit2.build/Objects-normal/x86_64/WebProcessProxyMessageReceiver.o /Users/abarth/svn/webkit/WebKitBuild/Debug/DerivedSources/WebKit2/WebProcessProxyMessageReceiver.cpp normal x86_64 c++ com.apple.compilers.gcc.4_2
cd /Users/abarth/svn/webkit/Source/WebKit2
setenv LANG en_US.US-ASCII
/Developer/usr/bin/gcc-4.2 -x c++ -arch x86_64 -fmessage-length=0 -pipe -Wno-trigraphs -fno-exceptions -fno-rtti -fpascal-strings -fasm-blocks -O0 -Werror -Wmissing-prototypes -Wreturn-type -Wnon-virtual-dtor -Wunused-variable -Wnewline-eof -DDISABLE_THREAD_CHECK -DENABLE_WEBGL -DENABLE_3D_RENDERING -DENABLE_BLOB -DENABLE_CHANNEL_MESSAGING -DENABLE_CLIENT_BASED_GEOLOCATION -DENABLE_DATABASE -DENABLE_DATALIST -DENABLE_DETAILS -DENABLE_DOM_STORAGE -DENABLE_EVENTSOURCE -DENABLE_FILTERS -DENABLE_FULLSCREEN_API -DENABLE_GEOLOCATION -DENABLE_ICONDATABASE -DENABLE_JAVASCRIPT_DEBUGGER -DENABLE_MATHML -DENABLE_METER_TAG -DENABLE_OFFLINE_WEB_APPLICATIONS -DENABLE_PROGRESS_TAG -DENABLE_SHARED_WORKERS -DENABLE_SVG -DENABLE_SVG_ANIMATION -DENABLE_SVG_AS_IMAGE -DENABLE_SVG_DOM_OBJC_BINDINGS -DENABLE_SVG_FONTS -DENABLE_SVG_FOREIGN_OBJECT -DENABLE_SVG_USE -DENABLE_VIDEO -DENABLE_WEB_SOCKETS -DENABLE_WORKERS -DENABLE_XPATH -DENABLE_XSLT -DFRAMEWORK_NAME=WebKit2 -fvisibility=hidden -fvisibility-inlines-hidden -fno-threadsafe-statics -mmacosx-version-min=10.6 -gdwarf-2 -I/Users/abarth/svn/webkit/WebKitBuild/WebKit2.build/Debug/WebKit2.build/WebKit2.hmap -Wall -Wextra -Wchar-subscripts -Wextra-tokens -Wformat-security -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wno-unused-parameter -Wpacked -Wpointer-arith -Wredundant-decls -Wundef -Wwrite-strings -F/Users/abarth/svn/webkit/WebKitBuild/Debug -F/Users/abarth/svn/webkit/WebKitBuild/Debug -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks -F/System/Library/Frameworks/Carbon.framework/Frameworks -F/System/Library/Frameworks/Quartz.framework/Frameworks -F/System/Library/Frameworks/CoreServices.framework/Frameworks -I/Users/abarth/svn/webkit/WebKitBuild/Debug/include -I/Users/abarth/svn/webkit/WebKitBuild/Debug/WebCore.framework/PrivateHeaders/ForwardingHeaders -I/Users/abarth/svn/webkit/WebKitBuild/Debug/WebCore.framework/PrivateHeaders/icu -I/Users/abarth/svn/webkit/WebKitBuild/Debug/usr/local/include -I/Users/abarth/svn/webkit/WebKitBuild/Debug/DerivedSources/WebKit2 -I/Users/abarth/svn/webkit/WebKitBuild/WebKit2.build/Debug/WebKit2.build/DerivedSources/x86_64 -I/Users/abarth/svn/webkit/WebKitBuild/WebKit2.build/Debug/WebKit2.build/DerivedSources -include /var/folders/Do/DoMaph5qFVqgE67TB2lr3k+++TI/-Caches-/com.apple.Xcode.501/SharedPrecompiledHeaders/WebKit2Prefix-culbqpxqjzqeiadivtmxqkvsjlgk/WebKit2Prefix.h -c /Users/abarth/svn/webkit/WebKitBuild/Debug/DerivedSources/WebKit2/WebProcessProxyMessageReceiver.cpp -o /Users/abarth/svn/webkit/WebKitBuild/WebKit2.build/Debug/WebKit2.build/Objects-normal/x86_64/WebProcessProxyMessageReceiver.o

/Users/abarth/svn/webkit/Source/WebKit2/Platform/CoreIPC/HandleMessage.h: In function &apos;void CoreIPC::handleMessageDelayed(CoreIPC::Connection*, CoreIPC::ArgumentDecoder*, CoreIPC::ArgumentEncoder*, C*, MF) [with T = Messages::WebProcessProxy::GetPluginProcessConnection, C = WebKit::WebProcessProxy, MF = void (WebKit::WebProcessProxy::*)(const WTF::String&amp;, WTF::PassRefPtr&lt;Messages::WebProcessProxy::GetPluginProcessConnection::DelayedReply&gt;)]&apos;:
/Users/abarth/svn/webkit/WebKitBuild/Debug/DerivedSources/WebKit2/WebProcessProxyMessageReceiver.cpp:101:   instantiated from here
/Users/abarth/svn/webkit/Source/WebKit2/Platform/CoreIPC/HandleMessage.h:315: error: no matching function for call to &apos;Messages::WebProcessProxy::GetPluginProcessConnection::DelayedReply::DelayedReply(CoreIPC::Connection*&amp;, CoreIPC::ArgumentEncoder*&amp;)&apos;
/Users/abarth/svn/webkit/WebKitBuild/Debug/DerivedSources/WebKit2/WebProcessProxyMessageReceiver.cpp:44: note: candidates are: Messages::WebProcessProxy::GetPluginProcessConnection::DelayedReply::DelayedReply(WTF::PassRefPtr&lt;CoreIPC::Connection&gt;, WTF::PassOwnPtr&lt;CoreIPC::ArgumentEncoder&gt;)
/Users/abarth/svn/webkit/WebKitBuild/Debug/DerivedSources/WebKit2/WebProcessProxyMessages.h:86: note:                 Messages::WebProcessProxy::GetPluginProcessConnection::DelayedReply::DelayedReply(const Messages::WebProcessProxy::GetPluginProcessConnection::DelayedReply&amp;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402449</commentid>
    <comment_count>1</comment_count>
      <attachid>93216</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-05-11 17:16:06 -0700</bug_when>
    <thetext>Created attachment 93216
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402498</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-05-11 17:58:35 -0700</bug_when>
    <thetext>Committed r86296: &lt;http://trac.webkit.org/changeset/86296&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402520</commentid>
    <comment_count>3</comment_count>
      <attachid>93216</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-05-11 18:20:29 -0700</bug_when>
    <thetext>Comment on attachment 93216
Patch

I&apos;m not sure this patch is right.  Does that mean we&apos;re supposed to leak the replyEncoder if the arguments fail to decode?  If this function is supposed take ownership, It seems more likely we should change the parameter to be a PassOwnPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402567</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-05-11 19:45:10 -0700</bug_when>
    <thetext>I tried chasing this for a while, but it mushroomed out of control pretty fast.  I suspect there&apos;s a memory management bug here somewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402570</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-05-11 19:50:21 -0700</bug_when>
    <thetext>For example, consider PluginControllerProxy::didReceiveSyncPluginControllerProxyMessage.  Whether this function eventually calls delete on its third argument appears to depend on the MessageID.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93216</attachid>
            <date>2011-05-11 17:16:06 -0700</date>
            <delta_ts>2011-05-11 18:20:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60655-20110511171605.patch</filename>
            <type>text/plain</type>
            <size>1387</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDg2Mjg4KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDUtMTEgIFNhbSBXZWlu
aWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBXZWJLaXQyIGRvZXNuJ3QgYnVpbGQgb24gTWFjIHdpdGggc3RyaWN0IFBh
c3NPd25QdHIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTYwNjU1CisKKyAgICAgICAgKiBQbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1lc3NhZ2UuaDoKKyAg
ICAgICAgKENvcmVJUEM6OmhhbmRsZU1lc3NhZ2VEZWxheWVkKToKKyAgICAgICAgQWRkIGV4cGxp
Y2l0IGFkb3B0UHRyIHRvIGluZGljYXRlIHRoYXQgdGhlIGNvbnN0cnVjdG9yIGlzIHRha2luZyBv
d25lcnNoaXAuCisKIDIwMTEtMDUtMTEgIEplc3NpZSBCZXJsaW4gIDxqYmVybGluQGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTdGV2ZSBGYWxrZW5idXJnLgpJbmRleDogU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9IYW5kbGVNZXNzYWdlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9IYW5kbGVNZXNzYWdlLmgJKHJldmlzaW9u
IDg2MjQ5KQorKysgU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9IYW5kbGVNZXNzYWdl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxMiw3ICszMTIsNyBAQCB2b2lkIGhhbmRsZU1lc3NhZ2VE
ZWxheWVkKENvbm5lY3Rpb24qIGNvCiAgICAgaWYgKCFhcmd1bWVudERlY29kZXItPmRlY29kZShh
cmd1bWVudHMpKQogICAgICAgICByZXR1cm47CiAKLSAgICBSZWZQdHI8dHlwZW5hbWUgVDo6RGVs
YXllZFJlcGx5PiBkZWxheWVkUmVwbHkgPSBhZG9wdFJlZihuZXcgdHlwZW5hbWUgVDo6RGVsYXll
ZFJlcGx5KGNvbm5lY3Rpb24sIHJlcGx5RW5jb2RlcikpOworICAgIFJlZlB0cjx0eXBlbmFtZSBU
OjpEZWxheWVkUmVwbHk+IGRlbGF5ZWRSZXBseSA9IGFkb3B0UmVmKG5ldyB0eXBlbmFtZSBUOjpE
ZWxheWVkUmVwbHkoY29ubmVjdGlvbiwgYWRvcHRQdHIocmVwbHlFbmNvZGVyKSkpOwogICAgIGNh
bGxNZW1iZXJGdW5jdGlvbihhcmd1bWVudHMsIGRlbGF5ZWRSZXBseS5yZWxlYXNlKCksIG9iamVj
dCwgZnVuY3Rpb24pOwogfQogCg==
</data>
<flag name="review"
          id="86348"
          type_id="1"
          status="+"
          setter="barraclough"
    />
          </attachment>
      

    </bug>

</bugzilla>