<?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>62052</bug_id>
          
          <creation_ts>2011-06-03 14:04:09 -0700</creation_ts>
          <short_desc>Make the destructors of DataTransferItem and DataTransferItems virtual</short_desc>
          <delta_ts>2011-06-04 02:05:55 -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>New Bugs</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="Nico Weber">thakis</reporter>
          <assigned_to name="Nico Weber">thakis</assigned_to>
          <cc>andersca</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>415170</commentid>
    <comment_count>0</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2011-06-03 14:04:09 -0700</bug_when>
    <thetext>Make the destructors of DataTransferItem and DataTransferItems virtual</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415182</commentid>
    <comment_count>1</comment_count>
      <attachid>95960</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2011-06-03 14:07:21 -0700</bug_when>
    <thetext>Created attachment 95960
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415194</commentid>
    <comment_count>2</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2011-06-03 14:14:46 -0700</bug_when>
    <thetext>Yes, this is a real bug in this case:

In file included from third_party/WebKit/Source/WebCore/html/canvas/ArrayBufferView.h:29:
In file included from third_party/WebKit/Source/WebCore/html/canvas/ArrayBuffer.h:30:
third_party/WebKit/Source/JavaScriptCore/wtf/RefCounted.h:141:13:error: delete called on &apos;WebCore::DataTransferItem&apos; that has virtual functions but non-virtual destructor [-Werror,-Wdelete-non-virtual-dtor]
            delete static_cast&lt;T*&gt;(this);
            ^
third_party/WebKit/Source/JavaScriptCore/wtf/PassRefPtr.h:59:18: note: in instantiation of member function &apos;WTF::RefCounted&lt;WebCore::DataTransferItem&gt;::deref&apos; requested here
            ptr-&gt;deref();
                 ^
third_party/WebKit/Source/JavaScriptCore/wtf/RefPtr.h:58:35: note: in instantiation of function template specialization &apos;WTF::derefIfNotNull&lt;WebCore::DataTransferItem&gt;&apos; requested here
        ALWAYS_INLINE ~RefPtr() { derefIfNotNull(m_ptr); }
                                  ^
third_party/WebKit/Source/JavaScriptCore/wtf/Vector.h:80:23: note: in instantiation of member function &apos;WTF::RefPtr&lt;WebCore::DataTransferItem&gt;::~RefPtr&apos; requested here
                cur-&gt;~T();
                      ^
third_party/WebKit/Source/JavaScriptCore/wtf/Vector.h:239:69: note: in instantiation of member function &apos;WTF::VectorDestructor&lt;true, WTF::RefPtr&lt;WebCore::DataTransferItem&gt; &gt;::destruct&apos; requested here
            VectorDestructor&lt;VectorTraits&lt;T&gt;::needsDestruction, T&gt;::destruct(begin, end);
                                                                    ^
third_party/WebKit/Source/JavaScriptCore/wtf/Vector.h:860:25: note: in instantiation of member function &apos;WTF::VectorTypeOperations&lt;WTF::RefPtr&lt;WebCore::DataTransferItem&gt; &gt;::destruct&apos; requested here
        TypeOperations::destruct(begin() + size, end());
                        ^
third_party/WebKit/Source/JavaScriptCore/wtf/Vector.h:520:25: note: in instantiation of member function &apos;WTF::Vector&lt;WTF::RefPtr&lt;WebCore::DataTransferItem&gt;, 0&gt;::shrink&apos; requested here
            if (m_size) shrink(0);
                        ^
third_party/WebKit/Source/WebCore/dom/DataTransferItems.h:48:5: note: in instantiation of member function &apos;WTF::Vector&lt;WTF::RefPtr&lt;WebCore::DataTransferItem&gt;, 0&gt;::~Vector&apos; requested here
    ~DataTransferItems() {}
    ^


The item is added with

    m_items.append(DataTransferItem::create(m_owner, m_context, data, type));

and that returns a polymorphic object, at least with the chromium port (DataTransferItemChromium::create, http://codesearch.google.com/codesearch/p?hl=en#OAMlx_jo-ck/src/third_party/WebKit/Source/WebCore/platform/chromium/DataTransferItemChromium.cpp&amp;q=DataTransferItemChromium::create&amp;exact_package=chromium&amp;l=57 )</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415433</commentid>
    <comment_count>3</comment_count>
      <attachid>95960</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-06-04 02:05:51 -0700</bug_when>
    <thetext>Comment on attachment 95960
Patch

Clearing flags on attachment: 95960

Committed r88099: &lt;http://trac.webkit.org/changeset/88099&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415434</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-06-04 02:05:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95960</attachid>
            <date>2011-06-03 14:07:21 -0700</date>
            <delta_ts>2011-06-04 02:05:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62052-20110603140720.patch</filename>
            <type>text/plain</type>
            <size>2402</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODc5MzUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1YjdiZjU5ZmJkODQ4Mzc3
ZGI2MTA4NjY0ZDNmN2RhYWMzMDY2OWM5Li5iNzk0ZWQ4M2I4OTU0ZmU0ZDAxY2FiYjE4MDZmNjkz
YTZkNmM0ZmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDYtMDMgIE5pY28g
V2ViZXIgIDx0aGFraXNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgdGhlIGRlc3RydWN0b3JzIG9mIERhdGFUcmFuc2Zl
ckl0ZW0gYW5kIERhdGFUcmFuc2Zlckl0ZW1zIHZpcnR1YWwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyMDUyCisKKyAgICAgICAgQ2xhbmcgaGFzIGdy
b3duIGEgbmV3IHdhcm5pbmcgdGhhdCB3YXJucyBvbiB8ZGVsZXRlIHB0cnwgaWYgcHRyJ3MKKyAg
ICAgICAgY2xhc3MgaXMgbm9uLWZpbmFsLCBoYXMgdmlydHVhbCBtZXRob2RzLCBidXQgbm8gdmly
dHVhbCBkZXN0cnVjdG9yLgorICAgICAgICBUaGlzIHdhcm5pbmcgZmluZHMgcmVhbCBidWdzLCBz
byB3ZSB3YW50IHRvIGtlZXAgaXQgZW5hYmxlZC4gSG93ZXZlciwKKyAgICAgICAgaXQgYWxzbyB3
YXJucyBhYm91dCBEYXRhVHJhbnNmZXJJdGVtW3NdLiBTaW5jZSB0aGVzZSBhcmUgc3ViY2xhc3Nl
ZCwKKyAgICAgICAgdGhleSBjYW4ndCBiZSBtYWRlIGZpbmFsLCBzbyBtYWtlIHRoZWlyIGRlc3Ry
dWN0b3JzIHZpcnR1YWwuIChNYXliZQorICAgICAgICBjbGFuZydzIHdhcm5pbmcgZXZlbiBwb2lu
dHMgb3V0IGFuIGFjdHVhbCBidWcgaGVyZS4pCisKKyAgICAgICAgKiBkb20vRGF0YVRyYW5zZmVy
SXRlbS5oOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbTo6fkRhdGFUcmFuc2Zl
ckl0ZW0pOgorICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXJJdGVtcy5oOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YVRyYW5zZmVySXRlbXM6On5EYXRhVHJhbnNmZXJJdGVtcyk6CisKIDIwMTEtMDYt
MDIgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEphbWVzIFJvYmluc29uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFU
cmFuc2Zlckl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmgKaW5k
ZXggZGNlY2Q2MGVjYWVjNGNiOWZlMzk3YmQxYTc1MmVmNjUyOWZiMjJjMi4uNzFlM2IxODQ2NGY2
YTkxZjljYzgwODQ0NzcxMTJiY2U4ZmI2OTg0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5z
ZmVySXRlbS5oCkBAIC00Niw3ICs0Niw3IEBAIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7
CiAKIGNsYXNzIERhdGFUcmFuc2Zlckl0ZW0gOiBwdWJsaWMgUmVmQ291bnRlZDxEYXRhVHJhbnNm
ZXJJdGVtPiB7CiBwdWJsaWM6Ci0gICAgfkRhdGFUcmFuc2Zlckl0ZW0oKSB7fQorICAgIHZpcnR1
YWwgfkRhdGFUcmFuc2Zlckl0ZW0oKSB7IH0KIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGFU
cmFuc2Zlckl0ZW0+IGNyZWF0ZShQYXNzUmVmUHRyPENsaXBib2FyZD4gb3duZXIsIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGEsIGNvbnN0IFN0cmluZyYgdHlwZSk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmgKaW5kZXggZGM2YjJiZDdmNzFj
MWFhYjA0YmMwNmQ4ZGZjZjY5OTYxZDE4MDg3Ni4uZWM3N2EzNjk3Y2EyMjAwNDk0NzFmMGQwMDk3
Y2QwYThkNTllNWE5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zl
ckl0ZW1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmgKQEAg
LTQ1LDcgKzQ1LDcgQEAgdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIAogY2xhc3MgRGF0YVRy
YW5zZmVySXRlbXMgOiBwdWJsaWMgUmVmQ291bnRlZDxEYXRhVHJhbnNmZXJJdGVtcz4gewogcHVi
bGljOgotICAgIH5EYXRhVHJhbnNmZXJJdGVtcygpIHt9CisgICAgdmlydHVhbCB+RGF0YVRyYW5z
ZmVySXRlbXMoKSB7IH0KIAogICAgIHZpcnR1YWwgc2l6ZV90IGxlbmd0aCgpIGNvbnN0OwogICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtPiBpdGVtKHVuc2lnbmVkIGxvbmcg
aW5kZXgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>