<?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>29187</bug_id>
          
          <creation_ts>2009-09-11 09:11:18 -0700</creation_ts>
          <short_desc>Don&apos;t inline ~ListRefPtr() to workaround winscw compiler forward declaration limitation.</short_desc>
          <delta_ts>2009-10-01 12:18:16 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>S60 Emulator</rep_platform>
          <op_sys>S60 3rd edition</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>
          
          <blocked>27065</blocked>
    
    <blocked>29738</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yongjun Zhang">yongjun.zhang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>koshuin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>146592</commentid>
    <comment_count>0</comment_count>
    <who name="Yongjun Zhang">yongjun.zhang</who>
    <bug_when>2009-09-11 09:11:18 -0700</bug_when>
    <thetext>ListRefPtr is used in FontFamily to embed SharedFontFamily as it&apos;s member.  Winscw compiler complains that SharedFontFamily is not defined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146640</commentid>
    <comment_count>1</comment_count>
      <attachid>39449</attachid>
    <who name="Yongjun Zhang">yongjun.zhang</who>
    <bug_when>2009-09-11 10:48:29 -0700</bug_when>
    <thetext>Created attachment 39449
Don&apos;t inline ~ListRefPtr for winscw compiler, keep it inlined for other compilers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146715</commentid>
    <comment_count>2</comment_count>
    <who name="Janne Koskinen">koshuin</who>
    <bug_when>2009-09-11 12:49:55 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=39449) [details]
&gt; Don&apos;t inline ~ListRefPtr for winscw compiler, keep it inlined for other
&gt; compilers.

This can be solved by not inlining the corresponding constructor and assignement operator from refptr.h ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146728</commentid>
    <comment_count>3</comment_count>
    <who name="Yongjun Zhang">yongjun.zhang</who>
    <bug_when>2009-09-11 13:31:42 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (In reply to comment #1)
&gt; &gt; Created an attachment (id=39449) [details] [details]
&gt; &gt; Don&apos;t inline ~ListRefPtr for winscw compiler, keep it inlined for other
&gt; &gt; compilers.
&gt; This can be solved by not inlining the corresponding constructor and
&gt; assignement operator from refptr.h ?

No, this is for ListRefPtr which is a different templated class than RefPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146805</commentid>
    <comment_count>4</comment_count>
      <attachid>39449</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-11 16:49:16 -0700</bug_when>
    <thetext>Comment on attachment 39449
Don&apos;t inline ~ListRefPtr for winscw compiler, keep it inlined for other compilers.

Can you help us understand this limitation more?  Have you filed a bug with the winscw folks?  Do they have a public bug tracker?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146891</commentid>
    <comment_count>5</comment_count>
    <who name="Yongjun Zhang">yongjun.zhang</who>
    <bug_when>2009-09-11 21:21:25 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 39449 [details])
&gt; Can you help us understand this limitation more?  Have you filed a bug with the
&gt; winscw folks?  Do they have a public bug tracker?

Sorry I didn&apos;t explain it in detail in error description.

~ListRefPtr() has the following line:

RefPtr&lt;T&gt; reaper = this-&gt;release();

which calls the ctr RefPtr&lt;T&gt;::RefPtr(T*), where ref() is called.  Winscw compiler tries to resolve T::ref() when ~ListRefPtr() is inlined, and it fails if class T is not defined before that.

I filed a bug to winscw team: https://xdabug001.ext.nokia.com/bugzilla/show_bug.cgi?id=9812 for similar issue in https://bugs.webkit.org/show_bug.cgi?id=28054.

Janne, you are right.  If we don&apos;t inline the ctor and assignment operator in RefPtr.h, this problem could be resolved.

There is another patch trying to address the same issue for KeyframeList and AnimationBase (https://bugs.webkit.org/show_bug.cgi?id=29204).  And it could be also resolved by removing inline for PassRefPtr&apos;s ctor and assignment operator.

Therefore, if we change PassRefPtr &amp; RefPtr&apos;s ctor and assignement operator, we can avoid making changes in other places.

Eric, do you think it is a better approach?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147481</commentid>
    <comment_count>6</comment_count>
      <attachid>39449</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-15 23:02:20 -0700</bug_when>
    <thetext>Comment on attachment 39449
Don&apos;t inline ~ListRefPtr for winscw compiler, keep it inlined for other compilers.

Maybe I don&apos;t understand C++ well enough, but I don&apos;t understand how you can have non-inline template code in a header.  I don&apos;t see what the &quot;inline&quot; keyword would do here, the destructor will always be inlined, no?

Also, this needs a comment in the code and a link to the winscw bug.

What is being forward declared here that winscw can&apos;t understand?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147536</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-09-16 08:26:08 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 39449 [details])
&gt; Maybe I don&apos;t understand C++ well enough, but I don&apos;t understand how you can
&gt; have non-inline template code in a header.

You&apos;re right to doubt your C++ knowledge here, Eric. Template code goes in headers; whether it&apos;s marked inline or not is not important. It&apos;s not correct to have a non-template function in a header unless it&apos;s marked inline, but that does not apply to function templates.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147569</commentid>
    <comment_count>8</comment_count>
    <who name="Yongjun Zhang">yongjun.zhang</who>
    <bug_when>2009-09-16 11:39:19 -0700</bug_when>
    <thetext>(In reply to comment #6)
Thanks a lot, Eric.

&gt; Also, this needs a comment in the code and a link to the winscw bug.

 

&gt; What is being forward declared here that winscw can&apos;t understand?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147572</commentid>
    <comment_count>9</comment_count>
    <who name="Yongjun Zhang">yongjun.zhang</who>
    <bug_when>2009-09-16 11:58:18 -0700</bug_when>
    <thetext>(In reply to comment #6)
Thanks a lot, Eric.

&gt; Also, this needs a comment in the code and a link to the winscw bug.

I will modify the patch as suggested.

&gt; What is being forward declared here that winscw can&apos;t understand?

Class FontFamily (in WebCore/platform/graphics) has member &quot;    ListRefPtr&lt;SharedFontFamily&gt; m_next&quot;.  SharedFontFamily is forward declared but winscw compiler complains it is not enough to resolve SharedFontFamily::ref(), when ~ListRefPtr is inlined in the implicit default dtor of FontFamily (which is inlined too).

To summerize how this happens:

1. ~FontFamily() is inlined, the compiler tries to resolve ~ListRefPtr() from inside.
2. ~ListRefPtr() has line &quot;RefPtr&lt;T&gt; reaper = this-&gt;release();&quot;, 
which calls the ctr RefPtr&lt;T&gt;::RefPtr(T*), where ref() is called.  Winscw
compiler tries to resolve T::ref() when ~ListRefPtr() is inlined, and it fails
if class T is not defined before that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150513</commentid>
    <comment_count>10</comment_count>
      <attachid>40235</attachid>
    <who name="Yongjun Zhang">yongjun.zhang</who>
    <bug_when>2009-09-28 08:18:26 -0700</bug_when>
    <thetext>Created attachment 40235
modify patch to include Eric&apos;s comments.


add link to winscw compiler bug in ChangeLog, to remind us revert this change when the bug is fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150527</commentid>
    <comment_count>11</comment_count>
      <attachid>40242</attachid>
    <who name="Yongjun Zhang">yongjun.zhang</who>
    <bug_when>2009-09-28 09:26:01 -0700</bug_when>
    <thetext>Created attachment 40242
modify patch to include Eric&apos;s comments.


document the winscw compiler bug in ChangeLog and the changed source code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151651</commentid>
    <comment_count>12</comment_count>
      <attachid>40242</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-01 12:18:11 -0700</bug_when>
    <thetext>Comment on attachment 40242
modify patch to include Eric&apos;s comments.

Clearing flags on attachment: 40242

Committed r48988: &lt;http://trac.webkit.org/changeset/48988&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151652</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-01 12:18:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39449</attachid>
            <date>2009-09-11 10:48:29 -0700</date>
            <delta_ts>2009-09-28 08:18:26 -0700</delta_ts>
            <desc>Don&apos;t inline ~ListRefPtr for winscw compiler, keep it inlined for other compilers.</desc>
            <filename>ListRefPtr.patch</filename>
            <type>text/plain</type>
            <size>2156</size>
            <attacher name="Yongjun Zhang">yongjun.zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDQ4MzA1KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMDktMTEgIFlvbmdqdW4g
WmhhbmcgIDx5b25nanVuLnpoYW5nQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjkxODcKKyAgICAgICAgCisgICAgICAgIERvbid0IGlubGluZSB+TGlzdFJlZlB0
cigpIHRvIHdvcmthcm91bmQgd2luc2N3IGNvbXBpbGVyIGZvcndhcmQgZGVjbGFyYXRpb24gCisg
ICAgICAgIGxpbWl0YXRpb24uCisKKyAgICAgICAgKiB3dGYvTGlzdFJlZlB0ci5oOgorICAgICAg
ICAoV1RGOjo6On5MaXN0UmVmUHRyKToKKwogMjAwOS0wOS0xMSAgSm9jZWx5biBUdXJjb3R0ZSAg
PGpvY2VseW4udHVyY290dGVAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9u
IEhhdXNtYW5uLgpJbmRleDogSmF2YVNjcmlwdENvcmUvd3RmL0xpc3RSZWZQdHIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS93dGYvTGlzdFJlZlB0ci5oCShyZXZpc2lvbiA0ODMwMCkK
KysrIEphdmFTY3JpcHRDb3JlL3d0Zi9MaXN0UmVmUHRyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0
LDEzICszNCw4IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICBMaXN0UmVmUHRyKGNvbnN0IFJl
ZlB0cjxUPiYgbykgOiBSZWZQdHI8VD4obykge30KICAgICAgICAgLy8gc2VlIGNvbW1lbnQgaW4g
UGFzc1JlZlB0ci5oIGZvciB3aHkgdGhpcyB0YWtlcyBjb25zdCByZWZlcmVuY2UKICAgICAgICAg
dGVtcGxhdGUgPHR5cGVuYW1lIFU+IExpc3RSZWZQdHIoY29uc3QgUGFzc1JlZlB0cjxVPiYgbykg
OiBSZWZQdHI8VD4obykge30KLQotICAgICAgICB+TGlzdFJlZlB0cigpCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIFJlZlB0cjxUPiByZWFwZXIgPSB0aGlzLT5yZWxlYXNlKCk7Ci0gICAgICAgICAg
ICB3aGlsZSAocmVhcGVyICYmIHJlYXBlci0+aGFzT25lUmVmKCkpCi0gICAgICAgICAgICAgICAg
cmVhcGVyID0gcmVhcGVyLT5yZWxlYXNlTmV4dCgpOyAvLyBpbXBsaWNpdGx5IHByb3RlY3RzIHJl
YXBlci0+bmV4dCwgdGhlbiBkZXJlZnMgcmVhcGVyCi0gICAgICAgIH0KKyAgICAgICAgCisgICAg
ICAgIH5MaXN0UmVmUHRyKCk7CiAgICAgICAgIAogICAgICAgICBMaXN0UmVmUHRyJiBvcGVyYXRv
cj0oVCogb3B0cikgeyBSZWZQdHI8VD46Om9wZXJhdG9yPShvcHRyKTsgcmV0dXJuICp0aGlzOyB9
CiAgICAgICAgIExpc3RSZWZQdHImIG9wZXJhdG9yPShjb25zdCBSZWZQdHI8VD4mIG8pIHsgUmVm
UHRyPFQ+OjpvcGVyYXRvcj0obyk7IHJldHVybiAqdGhpczsgfQpAQCAtNDksNiArNDQsMTcgQEAg
bmFtZXNwYWNlIFdURiB7CiAgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBVPiBMaXN0UmVmUHRy
JiBvcGVyYXRvcj0oY29uc3QgUGFzc1JlZlB0cjxVPiYgbykgeyBSZWZQdHI8VD46Om9wZXJhdG9y
PShvKTsgcmV0dXJuICp0aGlzOyB9CiAgICAgfTsKIAorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBU
PiAKKyNpZiAhQ09NUElMRVIoV0lOU0NXKQorICAgIGlubGluZQorI2VuZGlmCisgICAgTGlzdFJl
ZlB0cjxUPjo6fkxpc3RSZWZQdHIoKQorICAgIHsKKyAgICAgICAgUmVmUHRyPFQ+IHJlYXBlciA9
IHRoaXMtPnJlbGVhc2UoKTsKKyAgICAgICAgd2hpbGUgKHJlYXBlciAmJiByZWFwZXItPmhhc09u
ZVJlZigpKQorICAgICAgICAgICAgcmVhcGVyID0gcmVhcGVyLT5yZWxlYXNlTmV4dCgpOyAvLyBp
bXBsaWNpdGx5IHByb3RlY3RzIHJlYXBlci0+bmV4dCwgdGhlbiBkZXJlZnMgcmVhcGVyCisgICAg
fQorCiAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGlubGluZSBUKiBnZXRQdHIoY29uc3QgTGlz
dFJlZlB0cjxUPiYgcCkKICAgICB7CiAgICAgICAgIHJldHVybiBwLmdldCgpOwo=
</data>
<flag name="review"
          id="20547"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40235</attachid>
            <date>2009-09-28 08:18:26 -0700</date>
            <delta_ts>2009-09-28 09:26:01 -0700</delta_ts>
            <desc>modify patch to include Eric&apos;s comments.</desc>
            <filename>ListRefPtr.patch</filename>
            <type>text/plain</type>
            <size>2369</size>
            <attacher name="Yongjun Zhang">yongjun.zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgKHJldmlzaW9uIDQ4ODEzKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nICh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDktMDktMjggIFlvbmdqdW4g
WmhhbmcgIDx5b25nanVuLnpoYW5nQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjkxODcKKworICAgICAgICBEb24ndCBpbmxpbmUgfkxpc3RSZWZQdHIoKSB0byB3
b3JrIGFyb3VuZCB3aW5zY3cgY29tcGlsZXIgZm9yd2FyZCBkZWNsYXJhdGlvbgorICAgICAgICBi
dWcgcmVnYXJkaW5nIHRlbXBsYXRlZCBjbGFzc2VzLgorCisgICAgICAgIFRoZSBjb21waWxlciBi
dWcgaXMgcmVwb3J0ZWQgYXQ6CisgICAgICAgIGh0dHBzOi8veGRhYnVnMDAxLmV4dC5ub2tpYS5j
b20vYnVnemlsbGEvc2hvd19idWcuY2dpP2lkPTk4MTIKKworICAgICAgICBUaGUgY2hhbmdlIHdp
bGwgYmUgcmV2ZXJ0ZWQgd2hlbiB0aGUgYWJvdmUgYnVnIGlzIGZpeGVkIGluIHdpbnNjdyBjb21w
aWxlci4KKworICAgICAgICAqIHd0Zi9MaXN0UmVmUHRyLmg6CisgICAgICAgIChXVEY6Ojo6fkxp
c3RSZWZQdHIpOgorCiAyMDA5LTA5LTI4ICBKb2VyZyBCb3JuZW1hbm4gIDxqb2VyZy5ib3JuZW1h
bm5Abm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgpJbmRl
eDogSmF2YVNjcmlwdENvcmUvd3RmL0xpc3RSZWZQdHIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2Ny
aXB0Q29yZS93dGYvTGlzdFJlZlB0ci5oIChyZXZpc2lvbiA0ODgxMCkKKysrIEphdmFTY3JpcHRD
b3JlL3d0Zi9MaXN0UmVmUHRyLmggKHdvcmtpbmcgY29weSkKQEAgLTM0LDEzICszNCw4IEBAIG5h
bWVzcGFjZSBXVEYgewogICAgICAgICBMaXN0UmVmUHRyKGNvbnN0IFJlZlB0cjxUPiYgbykgOiBS
ZWZQdHI8VD4obykge30KICAgICAgICAgLy8gc2VlIGNvbW1lbnQgaW4gUGFzc1JlZlB0ci5oIGZv
ciB3aHkgdGhpcyB0YWtlcyBjb25zdCByZWZlcmVuY2UKICAgICAgICAgdGVtcGxhdGUgPHR5cGVu
YW1lIFU+IExpc3RSZWZQdHIoY29uc3QgUGFzc1JlZlB0cjxVPiYgbykgOiBSZWZQdHI8VD4obykg
e30KLQotICAgICAgICB+TGlzdFJlZlB0cigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIFJlZlB0
cjxUPiByZWFwZXIgPSB0aGlzLT5yZWxlYXNlKCk7Ci0gICAgICAgICAgICB3aGlsZSAocmVhcGVy
ICYmIHJlYXBlci0+aGFzT25lUmVmKCkpCi0gICAgICAgICAgICAgICAgcmVhcGVyID0gcmVhcGVy
LT5yZWxlYXNlTmV4dCgpOyAvLyBpbXBsaWNpdGx5IHByb3RlY3RzIHJlYXBlci0+bmV4dCwgdGhl
biBkZXJlZnMgcmVhcGVyCi0gICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIH5MaXN0UmVmUHRy
KCk7CiAgICAgICAgIAogICAgICAgICBMaXN0UmVmUHRyJiBvcGVyYXRvcj0oVCogb3B0cikgeyBS
ZWZQdHI8VD46Om9wZXJhdG9yPShvcHRyKTsgcmV0dXJuICp0aGlzOyB9CiAgICAgICAgIExpc3RS
ZWZQdHImIG9wZXJhdG9yPShjb25zdCBSZWZQdHI8VD4mIG8pIHsgUmVmUHRyPFQ+OjpvcGVyYXRv
cj0obyk7IHJldHVybiAqdGhpczsgfQpAQCAtNDksNiArNDQsMTcgQEAgbmFtZXNwYWNlIFdURiB7
CiAgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBVPiBMaXN0UmVmUHRyJiBvcGVyYXRvcj0oY29u
c3QgUGFzc1JlZlB0cjxVPiYgbykgeyBSZWZQdHI8VD46Om9wZXJhdG9yPShvKTsgcmV0dXJuICp0
aGlzOyB9CiAgICAgfTsKIAorICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiAKKyNpZiAhQ09NUElM
RVIoV0lOU0NXKQorICAgIGlubGluZQorI2VuZGlmCisgICAgTGlzdFJlZlB0cjxUPjo6fkxpc3RS
ZWZQdHIoKQorICAgIHsKKyAgICAgICAgUmVmUHRyPFQ+IHJlYXBlciA9IHRoaXMtPnJlbGVhc2Uo
KTsKKyAgICAgICAgd2hpbGUgKHJlYXBlciAmJiByZWFwZXItPmhhc09uZVJlZigpKQorICAgICAg
ICAgICAgcmVhcGVyID0gcmVhcGVyLT5yZWxlYXNlTmV4dCgpOyAvLyBpbXBsaWNpdGx5IHByb3Rl
Y3RzIHJlYXBlci0+bmV4dCwgdGhlbiBkZXJlZnMgcmVhcGVyCisgICAgfQorCiAgICAgdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+IGlubGluZSBUKiBnZXRQdHIoY29uc3QgTGlzdFJlZlB0cjxUPiYgcCkK
ICAgICB7CiAgICAgICAgIHJldHVybiBwLmdldCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40242</attachid>
            <date>2009-09-28 09:26:01 -0700</date>
            <delta_ts>2009-10-01 12:18:11 -0700</delta_ts>
            <desc>modify patch to include Eric&apos;s comments.</desc>
            <filename>ListRefPtr.patch</filename>
            <type>text/plain</type>
            <size>2599</size>
            <attacher name="Yongjun Zhang">yongjun.zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cocmV2aXNpb24gNDg4MTYpCisrKyBKYXZhU2NyaXB0Q29yZS9DaGFuZ2VM
b2cod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDA5LTA5LTI4ICBZb25nanVuIFpo
YW5nICA8eW9uZ2p1bi56aGFuZ0Bub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI5MTg3CisKKyAgICAgICAgRG9uJ3QgaW5saW5lIH5MaXN0UmVmUHRyKCkgdG8gd29y
ayBhcm91bmQgd2luc2N3IGNvbXBpbGVyIGZvcndhcmQgZGVjbGFyYXRpb24KKyAgICAgICAgYnVn
IHJlZ2FyZGluZyB0ZW1wbGF0ZWQgY2xhc3Nlcy4KKworICAgICAgICBUaGUgY29tcGlsZXIgYnVn
IGlzIHJlcG9ydGVkIGF0OgorICAgICAgICBodHRwczovL3hkYWJ1ZzAwMS5leHQubm9raWEuY29t
L2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD05ODEyCisKKyAgICAgICAgVGhlIGNoYW5nZSB3aWxs
IGJlIHJldmVydGVkIHdoZW4gdGhlIGFib3ZlIGJ1ZyBpcyBmaXhlZCBpbiB3aW5zY3cgY29tcGls
ZXIuCisKKyAgICAgICAgKiB3dGYvTGlzdFJlZlB0ci5oOgorICAgICAgICAoV1RGOjo6On5MaXN0
UmVmUHRyKToKKwogMjAwOS0wOS0yOCAgSm9lcmcgQm9ybmVtYW5uICA8am9lcmcuYm9ybmVtYW5u
QG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4KSW5kZXg6
IEphdmFTY3JpcHRDb3JlL3d0Zi9MaXN0UmVmUHRyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlw
dENvcmUvd3RmL0xpc3RSZWZQdHIuaChyZXZpc2lvbiA0ODgxNikKKysrIEphdmFTY3JpcHRDb3Jl
L3d0Zi9MaXN0UmVmUHRyLmgod29ya2luZyBjb3B5KQpAQCAtMzQsMTMgKzM0LDggQEAgbmFtZXNw
YWNlIFdURiB7CiAgICAgICAgIExpc3RSZWZQdHIoY29uc3QgUmVmUHRyPFQ+JiBvKSA6IFJlZlB0
cjxUPihvKSB7fQogICAgICAgICAvLyBzZWUgY29tbWVudCBpbiBQYXNzUmVmUHRyLmggZm9yIHdo
eSB0aGlzIHRha2VzIGNvbnN0IHJlZmVyZW5jZQogICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VT4gTGlzdFJlZlB0cihjb25zdCBQYXNzUmVmUHRyPFU+JiBvKSA6IFJlZlB0cjxUPihvKSB7fQot
Ci0gICAgICAgIH5MaXN0UmVmUHRyKCkKLSAgICAgICAgewotICAgICAgICAgICAgUmVmUHRyPFQ+
IHJlYXBlciA9IHRoaXMtPnJlbGVhc2UoKTsKLSAgICAgICAgICAgIHdoaWxlIChyZWFwZXIgJiYg
cmVhcGVyLT5oYXNPbmVSZWYoKSkKLSAgICAgICAgICAgICAgICByZWFwZXIgPSByZWFwZXItPnJl
bGVhc2VOZXh0KCk7IC8vIGltcGxpY2l0bHkgcHJvdGVjdHMgcmVhcGVyLT5uZXh0LCB0aGVuIGRl
cmVmcyByZWFwZXIKLSAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgfkxpc3RSZWZQdHIoKTsK
ICAgICAgICAgCiAgICAgICAgIExpc3RSZWZQdHImIG9wZXJhdG9yPShUKiBvcHRyKSB7IFJlZlB0
cjxUPjo6b3BlcmF0b3I9KG9wdHIpOyByZXR1cm4gKnRoaXM7IH0KICAgICAgICAgTGlzdFJlZlB0
ciYgb3BlcmF0b3I9KGNvbnN0IFJlZlB0cjxUPiYgbykgeyBSZWZQdHI8VD46Om9wZXJhdG9yPShv
KTsgcmV0dXJuICp0aGlzOyB9CkBAIC00OSw2ICs0NCwyMCBAQCBuYW1lc3BhY2UgV1RGIHsKICAg
ICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFU+IExpc3RSZWZQdHImIG9wZXJhdG9yPShjb25zdCBQ
YXNzUmVmUHRyPFU+JiBvKSB7IFJlZlB0cjxUPjo6b3BlcmF0b3I9KG8pOyByZXR1cm4gKnRoaXM7
IH0KICAgICB9OwogCisgICAgLy8gUmVtb3ZlIGlubGluZSBmb3Igd2luc2N3IGNvbXBpbGVyIHRv
IHByZXZlbnQgdGhlIGNvbXBpbGVyIGFncmVzc2l2ZWx5IHJlc29sdmluZworICAgIC8vIFQ6OnJl
ZigpIGluIFJlZlB0cjxUPidzIGNvcHkgY29uc3RydWN0b3IuICBUaGUgYnVnIGlzIHJlcG9ydGVk
IGF0OgorICAgIC8vIGh0dHBzOi8veGRhYnVnMDAxLmV4dC5ub2tpYS5jb20vYnVnemlsbGEvc2hv
d19idWcuY2dpP2lkPTk4MTIuCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IAorI2lmICFDT01Q
SUxFUihXSU5TQ1cpCisgICAgaW5saW5lCisjZW5kaWYKKyAgICBMaXN0UmVmUHRyPFQ+Ojp+TGlz
dFJlZlB0cigpCisgICAgeworICAgICAgICBSZWZQdHI8VD4gcmVhcGVyID0gdGhpcy0+cmVsZWFz
ZSgpOworICAgICAgICB3aGlsZSAocmVhcGVyICYmIHJlYXBlci0+aGFzT25lUmVmKCkpCisgICAg
ICAgICAgICByZWFwZXIgPSByZWFwZXItPnJlbGVhc2VOZXh0KCk7IC8vIGltcGxpY2l0bHkgcHJv
dGVjdHMgcmVhcGVyLT5uZXh0LCB0aGVuIGRlcmVmcyByZWFwZXIKKyAgICB9CisKICAgICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4gaW5saW5lIFQqIGdldFB0cihjb25zdCBMaXN0UmVmUHRyPFQ+JiBw
KQogICAgIHsKICAgICAgICAgcmV0dXJuIHAuZ2V0KCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>