<?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>34434</bug_id>
          
          <creation_ts>2010-02-01 09:38:18 -0800</creation_ts>
          <short_desc>[Android] AbstractWeakReferenceMap in V8DOMMap.h needs a virtual destructor</short_desc>
          <delta_ts>2010-02-02 13:54:00 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Android</rep_platform>
          <op_sys>Android</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="Steve Block">steveblock</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>android-webkit-unforking</cc>
    
    <cc>eric</cc>
    
    <cc>steveblock</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>186456</commentid>
    <comment_count>0</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-02-01 09:38:18 -0800</bug_when>
    <thetext>AbstractWeakReferenceMap in V8DOMMap.h has virtual methods but no virtual destructor.
This causes build errors on Android.

This was added in http://trac.webkit.org/changeset/53944</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186458</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-02-01 09:48:33 -0800</bug_when>
    <thetext>Sorry about that.  We need some automated way of catching these cases so we don&apos;t keep breaking the Android build for no reason.  The ideal thing would be to set up an EWS bot to catch these errors.  If you&apos;re interested in setting one up on your end, send me email and I&apos;ll tell you what&apos;s involved.  (I would set one up in our current bot farm, but I don&apos;t know how to build Android.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186463</commentid>
    <comment_count>2</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-02-01 09:56:21 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; Sorry about that.
No problem

&gt; We need some automated way of catching these cases so we
&gt; don&apos;t keep breaking the Android build for no reason.  The ideal thing would be
&gt; to set up an EWS bot to catch these errors.  If you&apos;re interested in setting
&gt; one up on your end, send me email and I&apos;ll tell you what&apos;s involved.  (I would
&gt; set one up in our current bot farm, but I don&apos;t know how to build Android.)
Agreed, thanks for the offer of help. Android isn&apos;t yet fully upstreamed, so can&apos;t be built from webkit.org. We&apos;re working as fast as we can to fix that and will set up a bot as soon as possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186476</commentid>
    <comment_count>3</comment_count>
      <attachid>47853</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-02-01 10:32:36 -0800</bug_when>
    <thetext>Created attachment 47853
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186481</commentid>
    <comment_count>4</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-02-01 10:35:21 -0800</bug_when>
    <thetext>Patch adds virtual destructors for AbstractWeakReferenceMap and AbstractWeakReferenceMap::Visitor

Note that the destructor for AbstractWeakReferenceMap needs to be public as it&apos;s used by ScopedDOMDataStore, but the destructor for AbstractWeakReferenceMap::Visitor does not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186482</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-02-01 10:38:43 -0800</bug_when>
    <thetext>+ virtual ~AbstractWeakReferenceMap

That&apos;s fine, but

+ virtual ~Visitor

that&apos;s not correct.  Objects are never deleted via Vistor pointers and inheriting from the Visitor interface shouldn&apos;t force an object to have a virtual destructor.  I feel like we had that discussion on another bug and found another solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186483</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-02-01 10:42:38 -0800</bug_when>
    <thetext>&gt; Agreed, thanks for the offer of help. Android isn&apos;t yet fully upstreamed, so
&gt; can&apos;t be built from webkit.org. We&apos;re working as fast as we can to fix that and
&gt; will set up a bot as soon as possible.

You can actually set up an EWS bot without the ability to build from webkit.org.  You just need to fill in the update_webkit_command and the build_webkit_command methods in a AndroidPort class in this file:

http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/webkitpy/webkitport.py

You can make them call arbitrary scripts, so as long as you have a machine that can update and build Android&apos;s WebKit port from the command line, you can set up an EWS bot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186486</commentid>
    <comment_count>7</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-02-01 10:50:28 -0800</bug_when>
    <thetext>&gt; + virtual ~Visitor
&gt; 
&gt; that&apos;s not correct.  Objects are never deleted via Vistor pointers and
&gt; inheriting from the Visitor interface shouldn&apos;t force an object to have a
&gt; virtual destructor.  I feel like we had that discussion on another bug and
&gt; found another solution.
Are you thinking of Bug 33675 and http://trac.webkit.org/changeset/53401 ? This added a virtual destructor to WeakReferenceMap::Visitor. It was the last change to this file before http://trac.webkit.org/changeset/53944 removed WeakReferenceMap::Visitor and added AbstractWeakReferenceMap::Visitor. The outcome of the discussion was to make the destructor protected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186487</commentid>
    <comment_count>8</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-02-01 10:57:12 -0800</bug_when>
    <thetext>&gt; You can actually set up an EWS bot without the ability to build from
&gt; webkit.org.  You just need to fill in the update_webkit_command and the
&gt; build_webkit_command methods in a AndroidPort class in this file:
&gt; 
&gt; http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/webkitpy/webkitport.py
&gt; 
&gt; You can make them call arbitrary scripts, so as long as you have a machine that
&gt; can update and build Android&apos;s WebKit port from the command line, you can set
&gt; up an EWS bot.
Ah, good to know, thanks. The problem still remains that because Android WebKit is forked from from webkit.org, there&apos;s a good chance that a patch won&apos;t apply, so we can&apos;t update the tree without manual conflict resolution. There would be lots of false positives, but it might be worth having anyway as it will give us a heads up as soon as a conflicting patch is landed. I&apos;ll look into it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186859</commentid>
    <comment_count>9</comment_count>
      <attachid>47853</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-02-02 01:30:57 -0800</bug_when>
    <thetext>Comment on attachment 47853
Patch

Email from abarth:
&gt; Ah, that&apos;s right.  r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186865</commentid>
    <comment_count>10</comment_count>
      <attachid>47853</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-02-02 01:46:39 -0800</bug_when>
    <thetext>Comment on attachment 47853
Patch

Rejecting patch 47853 from review queue.

steveblock@google.com does not have reviewer permissions according to http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/webkitpy/committers.py.

- If you do not have reviewer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags.

- If you have reviewer rights please correct the error in WebKitTools/Scripts/webkitpy/committers.py by adding yourself to the file (no review needed).  Due to bug 30084 the commit-queue will require a restart after your change.  Please contact eseidel@chromium.org to request a commit-queue restart.  After restart the commit-queue will correctly respect your reviewer rights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186866</commentid>
    <comment_count>11</comment_count>
      <attachid>47853</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-02-02 01:52:24 -0800</bug_when>
    <thetext>Comment on attachment 47853
Patch

Will land manually</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186869</commentid>
    <comment_count>12</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-02-02 01:59:47 -0800</bug_when>
    <thetext>Landed manually as http://trac.webkit.org/changeset/54218

Closing bug as resolved fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186959</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-02-02 07:39:18 -0800</bug_when>
    <thetext>Sorry for not flipping the bit on the patch myself.  I was away from my computer yesterday.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187121</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-02 13:54:00 -0800</bug_when>
    <thetext>You can&apos;t r+ patches in bugzilla if you&apos;re not a reviewer.  However you can still use the commit-queue.  cq+&apos;d patches will the review flag unset, will still be landed.  But they&apos;ll fail to land if they have an OOPS in them, so you&apos;d have to set the reviewer before hand or replace the reviewer line with some text about why review was not required.

Adam Barth was working on some sort of &quot;webkit-patch land-safely&quot; command which used this feature of the commit-queue.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47853</attachid>
            <date>2010-02-01 10:32:36 -0800</date>
            <delta_ts>2010-02-02 01:52:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34434-20100201183234.patch</filename>
            <type>text/plain</type>
            <size>1532</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NDEzNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTAtMDItMDEgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZHMgdmlydHVhbCBkZXN0cnVjdG9ycyBmb3IgQWJzdHJhY3RXZWFrUmVmZXJlbmNlTWFwIGFu
ZCBBYnN0cmFjdFdlYWtSZWZlcmVuY2VNYXA6OlZpc2l0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NDM0CisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCBidWlsZCBmaXggb25seS4KKworICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4RE9NTWFwLmg6IE1v
ZGlmaWVkLgorICAgICAgICAoV2ViQ29yZTo6QWJzdHJhY3RXZWFrUmVmZXJlbmNlTWFwOjp+QWJz
dHJhY3RXZWFrUmVmZXJlbmNlTWFwKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpBYnN0cmFj
dFdlYWtSZWZlcmVuY2VNYXA6OlZpc2l0b3I6On5WaXNpdG9yKTogQWRkZWQuCisKIDIwMTAtMDIt
MDEgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBTaW1vbiBGcmFzZXIuCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NTWFwLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTU1hcC5oCShyZXZpc2lvbiA1NDEz
NikKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvVjhET01NYXAuaAkod29ya2luZyBjb3B5KQpAQCAt
NDQsMTAgKzQ0LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICB0ZW1wbGF0ZSA8Y2xhc3Mg
S2V5VHlwZSwgY2xhc3MgVmFsdWVUeXBlPiBjbGFzcyBBYnN0cmFjdFdlYWtSZWZlcmVuY2VNYXAg
ewogICAgIHB1YmxpYzoKICAgICAgICAgQWJzdHJhY3RXZWFrUmVmZXJlbmNlTWFwKHY4OjpXZWFr
UmVmZXJlbmNlQ2FsbGJhY2sgY2FsbGJhY2spIDogbV93ZWFrUmVmZXJlbmNlQ2FsbGJhY2soY2Fs
bGJhY2spIHsgfQorICAgICAgICB2aXJ0dWFsIH5BYnN0cmFjdFdlYWtSZWZlcmVuY2VNYXAoKSB7
IH0KIAogICAgICAgICBjbGFzcyBWaXNpdG9yIHsKICAgICAgICAgcHVibGljOgogICAgICAgICAg
ICAgdmlydHVhbCB2b2lkIHZpc2l0RE9NV3JhcHBlcihLZXlUeXBlKiBrZXksIHY4OjpQZXJzaXN0
ZW50PFZhbHVlVHlwZT4gb2JqZWN0KSA9IDA7CisgICAgICAgIHByb3RlY3RlZDoKKyAgICAgICAg
ICAgIHZpcnR1YWwgflZpc2l0b3IoKSB7IH0KICAgICAgICAgfTsKIAogICAgICAgICB2aXJ0dWFs
IHY4OjpQZXJzaXN0ZW50PFZhbHVlVHlwZT4gZ2V0KEtleVR5cGUqIG9iaikgPSAwOwo=
</data>
<flag name="review"
          id="30401"
          type_id="1"
          status="-"
          setter="commit-queue"
    />
    <flag name="commit-queue"
          id="30485"
          type_id="3"
          status="-"
          setter="steveblock"
    />
          </attachment>
      

    </bug>

</bugzilla>