<?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>49085</bug_id>
          
          <creation_ts>2010-11-05 12:09:52 -0700</creation_ts>
          <short_desc>Spatial Navigation: Add a helper function isSpatialNavigationEnabled()</short_desc>
          <delta_ts>2010-11-07 01:24:46 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>46905</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chang Shu">cshu</reporter>
          <assigned_to name="Chang Shu">cshu</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>tonikitoo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>305447</commentid>
    <comment_count>0</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2010-11-05 12:09:52 -0700</bug_when>
    <thetext>Add a helper function isSpatialNavigationEnabled() in spatialnavigation.h to avoid duplicate code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305490</commentid>
    <comment_count>1</comment_count>
      <attachid>73109</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2010-11-05 13:31:08 -0700</bug_when>
    <thetext>Created attachment 73109
fix patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305495</commentid>
    <comment_count>2</comment_count>
      <attachid>73109</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-11-05 13:49:25 -0700</bug_when>
    <thetext>Comment on attachment 73109
fix patch

Looks good! I still think we could pass Page* or Settings* as a parameter.

Any specific reason for Frame?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305503</commentid>
    <comment_count>3</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2010-11-05 13:59:16 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 73109 [details])
&gt; Looks good! I still think we could pass Page* or Settings* as a parameter.
&gt; 
&gt; Any specific reason for Frame?

The reason I prefer using Frame over Settings is that the caller doesn&apos;t have to do an additional check against pointer frame, which is taken care of inside the helper function. Design-wise, a user is asking if spatial navigation is enabled in a frame. The user shouldn&apos;t know about the internal implementation of Frame.
In terms of Page, it&apos;s pretty much the same as Frame. Frame::settings() returns the page-&gt;settings(). In case its implementation changes for any reason, say, each frame has its own settings, this helper function needs no change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305512</commentid>
    <comment_count>4</comment_count>
      <attachid>73109</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-11-05 14:10:32 -0700</bug_when>
    <thetext>Comment on attachment 73109
fix patch

View in context: https://bugs.webkit.org/attachment.cgi?id=73109&amp;action=review

&gt; WebCore/page/SpatialNavigation.cpp:58
&gt; +    if (frame &amp;&amp; frame-&gt;settings() &amp;&amp; frame-&gt;settings()-&gt;isSpatialNavigationEnabled())
&gt; +        return true;
&gt; +
&gt; +    return false;

This:

    if (x)
        return true;
    return false;

Is the same as this:

    return x;

You should remove the if.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305513</commentid>
    <comment_count>5</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2010-11-05 14:11:49 -0700</bug_when>
    <thetext>sure!
&gt; This:
&gt; 
&gt;     if (x)
&gt;         return true;
&gt;     return false;
&gt; 
&gt; Is the same as this:
&gt; 
&gt;     return x;
&gt; 
&gt; You should remove the if.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305519</commentid>
    <comment_count>6</comment_count>
      <attachid>73116</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2010-11-05 14:19:45 -0700</bug_when>
    <thetext>Created attachment 73116
fix patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305783</commentid>
    <comment_count>7</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-11-06 05:45:22 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 73109 [details] [details])
&gt; &gt; Looks good! I still think we could pass Page* or Settings* as a parameter.
&gt; &gt; 
&gt; &gt; Any specific reason for Frame?
&gt; 
&gt; The reason I prefer using Frame over Settings is that the caller doesn&apos;t have to do an additional check against pointer frame, which is taken care of inside the helper function. Design-wise, a user is asking if spatial navigation is enabled in a frame. The user shouldn&apos;t know about the internal implementation of Frame.
&gt; In terms of Page, it&apos;s pretty much the same as Frame. Frame::settings() returns the page-&gt;settings(). In case its implementation changes for any reason, say, each frame has its own settings, this helper function needs no change.

I do not think there is any plan to make settings per Frame. It is essentially a Page concept.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305865</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-07 01:23:40 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 73116:

http/tests/security/cross-origin-css.html

Please file bugs against the tests.  These tests were authored by cevans@google.com.  The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305866</commentid>
    <comment_count>9</comment_count>
      <attachid>73116</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-07 01:24:41 -0800</bug_when>
    <thetext>Comment on attachment 73116
fix patch 2

Clearing flags on attachment: 73116

Committed r71479: &lt;http://trac.webkit.org/changeset/71479&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305867</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-07 01:24:46 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73109</attachid>
            <date>2010-11-05 13:31:08 -0700</date>
            <delta_ts>2010-11-05 14:19:45 -0700</delta_ts>
            <desc>fix patch</desc>
            <filename>49085_1.patch</filename>
            <type>text/plain</type>
            <size>6357</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTQ0NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTAtMTEtMDUgIENoYW5nIFNodSAgPGNoYW5nLnNodUBub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IGEgaGVscGVyIGZ1bmN0aW9uIHRvIGF2b2lkIGR1cGxpY2F0ZWQgY29kZS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5MDg1CisKKyAgICAgICAgKiBk
b20vU2VsZWN0RWxlbWVudC5jcHA6CisgICAgICAgICogZWRpdGluZy9TZWxlY3Rpb25Db250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdGlvbkNvbnRyb2xsZXI6Om1vZGlmeSk6
CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxJbnB1dEVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUpOgorICAgICAgICAqIHBhZ2Uv
RXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZGVmYXVs
dEFycm93RXZlbnRIYW5kbGVyKToKKyAgICAgICAgKiBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmlzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKToKKyAgICAg
ICAgKiBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmg6CisKIDIwMTAtMTEtMDUgIENocmlzIEd1aWxs
b3J5ICA8Y2hyaXMuZ3VpbGxvcnlAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBD
aHJpcyBGbGVpemFjaC4KSW5kZXg6IFdlYkNvcmUvZG9tL1NlbGVjdEVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvZG9tL1NlbGVjdEVsZW1lbnQuY3BwCShyZXZpc2lvbiA3MTQ0MykK
KysrIFdlYkNvcmUvZG9tL1NlbGVjdEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3
ICs0MSw3IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlbmRlckxpc3RCb3guaCIK
ICNpbmNsdWRlICJSZW5kZXJNZW51TGlzdC5oIgotI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5j
bHVkZSAiU3BhdGlhbE5hdmlnYXRpb24uaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgog
CiAjaWYgRU5BQkxFKFdNTCkKQEAgLTcxLDE0ICs3MSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogc3RhdGljIGNvbnN0IERPTVRpbWVTdGFtcCB0eXBlQWhlYWRUaW1lb3V0ID0gMTAwMDsKIAot
c3RhdGljIGJvb2wgaXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoY29uc3QgRnJhbWUqIGZyYW1l
KQotewotICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+c2V0dGluZ3MoKSAmJiBmcmFtZS0+c2V0dGlu
Z3MoKS0+aXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7
Ci0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIHZvaWQgU2VsZWN0RWxlbWVudDo6c2VsZWN0QWxs
KFNlbGVjdEVsZW1lbnREYXRhJiBkYXRhLCBFbGVtZW50KiBlbGVtZW50KQogewogICAgIEFTU0VS
VCghZGF0YS51c2VzTWVudUxpc3QoKSk7CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9u
Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvbkNv
bnRyb2xsZXIuY3BwCShyZXZpc2lvbiA3MTQ0MykKKysrIFdlYkNvcmUvZWRpdGluZy9TZWxlY3Rp
b25Db250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjc1LDcgKzY3NSw3IEBAIGJvb2wg
U2VsZWN0aW9uQ29udHJvbGxlcjo6bW9kaWZ5KEVBbHRlcmEKICAgICBpZiAocG9zaXRpb24uaXNO
dWxsKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChtX2ZyYW1lICYmIG1fZnJh
bWUtPnNldHRpbmdzKCkgJiYgbV9mcmFtZS0+c2V0dGluZ3MoKS0+aXNTcGF0aWFsTmF2aWdhdGlv
bkVuYWJsZWQoKSkKKyAgICBpZiAoaXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQobV9mcmFtZSkp
CiAgICAgICAgIGlmICghd2FzUmFuZ2UgJiYgYWx0ZXIgPT0gQWx0ZXJhdGlvbk1vdmUgJiYgcG9z
aXRpb24gPT0gb3JpZ2luYWxTdGFydFBvc2l0aW9uKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCShyZXZpc2lvbiA3MTQ0MykKKysr
IFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzM1
LDcgKzMzNSw3IEBAIGJvb2wgSFRNTElucHV0RWxlbWVudDo6aXNLZXlib2FyZEZvY3VzYWIKIAog
ICAgIGlmIChkZXByZWNhdGVkSW5wdXRUeXBlKCkgPT0gUkFESU8pIHsKICAgICAgICAgLy8gV2hl
biB1c2luZyBTcGF0aWFsIE5hdmlnYXRpb24sIGV2ZXJ5IHJhZGlvIGJ1dHRvbiBzaG91bGQgYmUg
Zm9jdXNhYmxlLgotICAgICAgICBpZiAoZG9jdW1lbnQoKS0+ZnJhbWUoKSAmJiBkb2N1bWVudCgp
LT5mcmFtZSgpLT5zZXR0aW5ncygpICYmIGRvY3VtZW50KCktPmZyYW1lKCktPnNldHRpbmdzKCkt
PmlzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKCkpCisgICAgICAgIGlmIChpc1NwYXRpYWxOYXZp
Z2F0aW9uRW5hYmxlZChkb2N1bWVudCgpLT5mcmFtZSgpKSkKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogCiAgICAgICAgIC8vIE5ldmVyIGFsbG93IGtleWJvYXJkIHRhYmJpbmcgdG8gbGVhdmUg
eW91IGluIHRoZSBzYW1lIHJhZGlvIGdyb3VwLiAgQWx3YXlzCkluZGV4OiBXZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAkocmV2aXNpb24gNzE0NDMpCisrKyBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjcwNSw3ICsyNzA1LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmRl
ZmF1bHRBcnJvd0V2ZW50SGFuZAogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgaWYgKCFwYWdlLT5zZXR0aW5ncygpIHx8ICFwYWdlLT5zZXR0aW5ncygpLT5pc1NwYXRpYWxO
YXZpZ2F0aW9uRW5hYmxlZCgpKQorICAgIGlmICghaXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQo
bV9mcmFtZSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIEFycm93cyBhbmQgb3RoZXIgcG9z
c2libGUgZGlyZWN0aW9uYWwgbmF2aWdhdGlvbiBrZXlzIGNhbiBiZSB1c2VkIGluIGRlc2lnbgpJ
bmRleDogV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwCShyZXZpc2lvbiA3MTQ0MykKKysrIFdl
YkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYg
KzM3LDcgQEAKICNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNp
bmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC00OSw2ICs1MCwxNCBAQCBzdGF0aWMgYm9vbCBpc1JlY3RJbkRpcmVjdGlvbihG
b2N1c0RpcmVjCiBzdGF0aWMgdm9pZCBkZWZsYXRlSWZPdmVybGFwcGVkKEludFJlY3QmLCBJbnRS
ZWN0Jik7CiBzdGF0aWMgYm9vbCBjaGVja05lZ2F0aXZlQ29vcmRzRm9yTm9kZShOb2RlKiwgY29u
c3QgSW50UmVjdCYpOwogCitib29sIGlzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKGNvbnN0IEZy
YW1lKiBmcmFtZSkKK3sKKyAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPnNldHRpbmdzKCkgJiYgZnJh
bWUtPnNldHRpbmdzKCktPmlzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKCkpCisgICAgICAgIHJl
dHVybiB0cnVlOworCisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIGRpc3RhbmNlRGF0YUZv
ck5vZGUoRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBOb2RlKiBzdGFydCwgRm9jdXNDYW5kaWRh
dGUmIGNhbmRpZGF0ZSkKIHsKICAgICBSZW5kZXJPYmplY3QqIHN0YXJ0UmVuZGVyID0gc3RhcnQt
PnJlbmRlcmVyKCk7CkluZGV4OiBXZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uaAkocmV2aXNpb24gNzE0
NDMpCisrKyBXZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uaAkod29ya2luZyBjb3B5KQpA
QCAtNDUsNiArNDUsOCBAQCBpbmxpbmUgaW50IGZ1ZGdlRmFjdG9yKCkKICAgICByZXR1cm4gMjsK
IH0KIAorYm9vbCBpc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChjb25zdCBGcmFtZSopOworCiAv
LyBTcGF0aWFsbHkgc3BlYWtpbmcsIHR3byBnaXZlbiBlbGVtZW50cyBpbiBhIHdlYiBwYWdlIGNh
biBiZToKIC8vIDEpIEZ1bGx5IGFsaWduZWQ6IFRoZXJlIGlzIGEgZnVsbCBpbnRlcnNlY3Rpb24g
YmV0d2VlbiB0aGUgcmVjdHMsIGVpdGhlcgogLy8gICAgdmVydGljYWxseSBvciBob3Jpem9udGFs
bHkuCkluZGV4OiBXZWJLaXQvcXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9D
aGFuZ2VMb2cJKHJldmlzaW9uIDcxNDQ2KQorKysgV2ViS2l0L3F0L0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEwLTExLTA1ICBDaGFuZyBTaHUgIDxjaGFuZy5z
aHVAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBhIGhlbHBlciBmdW5jdGlvbiB0byBhdm9pZCBkdXBsaWNhdGVkIGNvZGUuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00OTA4NQorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yQ2xpZW50UXQ6OmhhbmRsZUtleWJvYXJkRXZlbnQpOgorCiAyMDEwLTExLTAz
ICBBbnRvbmlvIEdvbWVzICA8dG9uaWtpdG9vQHdlYmtpdC5vcmc+LCBBbmRyZSBQZWRyYWxobyAg
PGFuZHJlLnBlZHJhbGhvQGdtYWlsLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRo
IFJvaGRlIENocmlzdGlhbnNlbiBhbmQgQW50dGkgS29pdmlzdG8uCkluZGV4OiBXZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHAJKHJldmlzaW9uIDcxNDQzKQorKysg
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzYyLDcgKzM2Miw3IEBAIHZvaWQgRWRpdG9yQ2xpZW50UXQ6OmhhbmRsZUtleWJvYXJk
RXZlbnQKICAgICAvLyBGSVhNRTogcmVmYWN0b3IgYWxsIG9mIHRoaXMgdG8gdXNlIEFjdGlvbnMg
b3Igc29tZXRoaW5nIGxpa2UgdGhlbQogICAgIGlmIChzdGFydC0+aXNDb250ZW50RWRpdGFibGUo
KSkgewogICAgICAgICBib29sIGRvU3BhdGlhbE5hdmlnYXRpb24gPSBmYWxzZTsKLSAgICAgICAg
aWYgKGZyYW1lLT5zZXR0aW5ncygpICYmIGZyYW1lLT5zZXR0aW5ncygpLT5pc1NwYXRpYWxOYXZp
Z2F0aW9uRW5hYmxlZCgpKSB7CisgICAgICAgIGlmIChpc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxl
ZChmcmFtZSkpIHsKICAgICAgICAgICAgIGlmICgha2V2ZW50LT5tb2RpZmllcnMoKSkgewogICAg
ICAgICAgICAgICAgIHN3aXRjaCAoa2V2ZW50LT53aW5kb3dzVmlydHVhbEtleUNvZGUoKSkgewog
ICAgICAgICAgICAgICAgIGNhc2UgVktfTEVGVDoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73116</attachid>
            <date>2010-11-05 14:19:45 -0700</date>
            <delta_ts>2010-11-07 01:24:41 -0800</delta_ts>
            <desc>fix patch 2</desc>
            <filename>49085_2.patch</filename>
            <type>text/plain</type>
            <size>6403</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTQ0NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTAtMTEtMDUgIENoYW5nIFNodSAgPGNoYW5nLnNodUBub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IGEgaGVscGVyIGZ1bmN0aW9uIHRvIGF2b2lkIGR1cGxpY2F0ZWQgY29kZS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5MDg1CisKKyAgICAgICAgKiBk
b20vU2VsZWN0RWxlbWVudC5jcHA6CisgICAgICAgICogZWRpdGluZy9TZWxlY3Rpb25Db250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdGlvbkNvbnRyb2xsZXI6Om1vZGlmeSk6
CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxJbnB1dEVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUpOgorICAgICAgICAqIHBhZ2Uv
RXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZGVmYXVs
dEFycm93RXZlbnRIYW5kbGVyKToKKyAgICAgICAgKiBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmlzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKToKKyAgICAg
ICAgKiBwYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmg6CisKIDIwMTAtMTEtMDUgIENocmlzIEd1aWxs
b3J5ICA8Y2hyaXMuZ3VpbGxvcnlAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBD
aHJpcyBGbGVpemFjaC4KSW5kZXg6IFdlYkNvcmUvZG9tL1NlbGVjdEVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvZG9tL1NlbGVjdEVsZW1lbnQuY3BwCShyZXZpc2lvbiA3MTQ0MykK
KysrIFdlYkNvcmUvZG9tL1NlbGVjdEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3
ICs0MSw3IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlbmRlckxpc3RCb3guaCIK
ICNpbmNsdWRlICJSZW5kZXJNZW51TGlzdC5oIgotI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5j
bHVkZSAiU3BhdGlhbE5hdmlnYXRpb24uaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgog
CiAjaWYgRU5BQkxFKFdNTCkKQEAgLTcxLDE0ICs3MSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogc3RhdGljIGNvbnN0IERPTVRpbWVTdGFtcCB0eXBlQWhlYWRUaW1lb3V0ID0gMTAwMDsKIAot
c3RhdGljIGJvb2wgaXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoY29uc3QgRnJhbWUqIGZyYW1l
KQotewotICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+c2V0dGluZ3MoKSAmJiBmcmFtZS0+c2V0dGlu
Z3MoKS0+aXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7
Ci0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIHZvaWQgU2VsZWN0RWxlbWVudDo6c2VsZWN0QWxs
KFNlbGVjdEVsZW1lbnREYXRhJiBkYXRhLCBFbGVtZW50KiBlbGVtZW50KQogewogICAgIEFTU0VS
VCghZGF0YS51c2VzTWVudUxpc3QoKSk7CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9u
Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvbkNv
bnRyb2xsZXIuY3BwCShyZXZpc2lvbiA3MTQ0MykKKysrIFdlYkNvcmUvZWRpdGluZy9TZWxlY3Rp
b25Db250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjc1LDcgKzY3NSw3IEBAIGJvb2wg
U2VsZWN0aW9uQ29udHJvbGxlcjo6bW9kaWZ5KEVBbHRlcmEKICAgICBpZiAocG9zaXRpb24uaXNO
dWxsKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChtX2ZyYW1lICYmIG1fZnJh
bWUtPnNldHRpbmdzKCkgJiYgbV9mcmFtZS0+c2V0dGluZ3MoKS0+aXNTcGF0aWFsTmF2aWdhdGlv
bkVuYWJsZWQoKSkKKyAgICBpZiAoaXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQobV9mcmFtZSkp
CiAgICAgICAgIGlmICghd2FzUmFuZ2UgJiYgYWx0ZXIgPT0gQWx0ZXJhdGlvbk1vdmUgJiYgcG9z
aXRpb24gPT0gb3JpZ2luYWxTdGFydFBvc2l0aW9uKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCShyZXZpc2lvbiA3MTQ0MykKKysr
IFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzM1
LDcgKzMzNSw3IEBAIGJvb2wgSFRNTElucHV0RWxlbWVudDo6aXNLZXlib2FyZEZvY3VzYWIKIAog
ICAgIGlmIChkZXByZWNhdGVkSW5wdXRUeXBlKCkgPT0gUkFESU8pIHsKICAgICAgICAgLy8gV2hl
biB1c2luZyBTcGF0aWFsIE5hdmlnYXRpb24sIGV2ZXJ5IHJhZGlvIGJ1dHRvbiBzaG91bGQgYmUg
Zm9jdXNhYmxlLgotICAgICAgICBpZiAoZG9jdW1lbnQoKS0+ZnJhbWUoKSAmJiBkb2N1bWVudCgp
LT5mcmFtZSgpLT5zZXR0aW5ncygpICYmIGRvY3VtZW50KCktPmZyYW1lKCktPnNldHRpbmdzKCkt
PmlzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKCkpCisgICAgICAgIGlmIChpc1NwYXRpYWxOYXZp
Z2F0aW9uRW5hYmxlZChkb2N1bWVudCgpLT5mcmFtZSgpKSkKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogCiAgICAgICAgIC8vIE5ldmVyIGFsbG93IGtleWJvYXJkIHRhYmJpbmcgdG8gbGVhdmUg
eW91IGluIHRoZSBzYW1lIHJhZGlvIGdyb3VwLiAgQWx3YXlzCkluZGV4OiBXZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAkocmV2aXNpb24gNzE0NDMpCisrKyBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjcwNSw3ICsyNzA1LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmRl
ZmF1bHRBcnJvd0V2ZW50SGFuZAogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgaWYgKCFwYWdlLT5zZXR0aW5ncygpIHx8ICFwYWdlLT5zZXR0aW5ncygpLT5pc1NwYXRpYWxO
YXZpZ2F0aW9uRW5hYmxlZCgpKQorICAgIGlmICghaXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQo
bV9mcmFtZSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIEFycm93cyBhbmQgb3RoZXIgcG9z
c2libGUgZGlyZWN0aW9uYWwgbmF2aWdhdGlvbiBrZXlzIGNhbiBiZSB1c2VkIGluIGRlc2lnbgpJ
bmRleDogV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwCShyZXZpc2lvbiA3MTQ0MykKKysrIFdl
YkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDgg
KzM1LDkgQEAKICNpbmNsdWRlICJIVE1MRnJhbWVPd25lckVsZW1lbnQuaCIKICNpbmNsdWRlICJJ
bnRSZWN0LmgiCiAjaW5jbHVkZSAiTm9kZS5oIgotI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAj
aW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCisjaW5jbHVkZSAiU2V0
dGluZ3MuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00OSw2ICs1MCwxMSBAQCBzdGF0
aWMgYm9vbCBpc1JlY3RJbkRpcmVjdGlvbihGb2N1c0RpcmVjCiBzdGF0aWMgdm9pZCBkZWZsYXRl
SWZPdmVybGFwcGVkKEludFJlY3QmLCBJbnRSZWN0Jik7CiBzdGF0aWMgYm9vbCBjaGVja05lZ2F0
aXZlQ29vcmRzRm9yTm9kZShOb2RlKiwgY29uc3QgSW50UmVjdCYpOwogCitib29sIGlzU3BhdGlh
bE5hdmlnYXRpb25FbmFibGVkKGNvbnN0IEZyYW1lKiBmcmFtZSkKK3sKKyAgICByZXR1cm4gKGZy
YW1lICYmIGZyYW1lLT5zZXR0aW5ncygpICYmIGZyYW1lLT5zZXR0aW5ncygpLT5pc1NwYXRpYWxO
YXZpZ2F0aW9uRW5hYmxlZCgpKTsKK30KKwogdm9pZCBkaXN0YW5jZURhdGFGb3JOb2RlKEZvY3Vz
RGlyZWN0aW9uIGRpcmVjdGlvbiwgTm9kZSogc3RhcnQsIEZvY3VzQ2FuZGlkYXRlJiBjYW5kaWRh
dGUpCiB7CiAgICAgUmVuZGVyT2JqZWN0KiBzdGFydFJlbmRlciA9IHN0YXJ0LT5yZW5kZXJlcigp
OwpJbmRleDogV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmgJKHJldmlzaW9uIDcxNDQzKQorKysgV2Vi
Q29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDYgKzQ1
LDggQEAgaW5saW5lIGludCBmdWRnZUZhY3RvcigpCiAgICAgcmV0dXJuIDI7CiB9CiAKK2Jvb2wg
aXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoY29uc3QgRnJhbWUqKTsKKwogLy8gU3BhdGlhbGx5
IHNwZWFraW5nLCB0d28gZ2l2ZW4gZWxlbWVudHMgaW4gYSB3ZWIgcGFnZSBjYW4gYmU6CiAvLyAx
KSBGdWxseSBhbGlnbmVkOiBUaGVyZSBpcyBhIGZ1bGwgaW50ZXJzZWN0aW9uIGJldHdlZW4gdGhl
IHJlY3RzLCBlaXRoZXIKIC8vICAgIHZlcnRpY2FsbHkgb3IgaG9yaXpvbnRhbGx5LgpJbmRleDog
V2ViS2l0L3F0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQ2hhbmdlTG9nCShy
ZXZpc2lvbiA3MTQ0NikKKysrIFdlYktpdC9xdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxMyBAQAorMjAxMC0xMS0wNSAgQ2hhbmcgU2h1ICA8Y2hhbmcuc2h1QG5va2lhLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
YSBoZWxwZXIgZnVuY3Rpb24gdG8gYXZvaWQgZHVwbGljYXRlZCBjb2RlLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDkwODUKKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRv
ckNsaWVudFF0OjpoYW5kbGVLZXlib2FyZEV2ZW50KToKKwogMjAxMC0xMS0wMyAgQW50b25pbyBH
b21lcyAgPHRvbmlraXRvb0B3ZWJraXQub3JnPiwgQW5kcmUgUGVkcmFsaG8gIDxhbmRyZS5wZWRy
YWxob0BnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJp
c3RpYW5zZW4gYW5kIEFudHRpIEtvaXZpc3RvLgpJbmRleDogV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudFF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3BwCShyZXZpc2lvbiA3MTQ0MykKKysrIFdlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2Miw3
ICszNjIsNyBAQCB2b2lkIEVkaXRvckNsaWVudFF0OjpoYW5kbGVLZXlib2FyZEV2ZW50CiAgICAg
Ly8gRklYTUU6IHJlZmFjdG9yIGFsbCBvZiB0aGlzIHRvIHVzZSBBY3Rpb25zIG9yIHNvbWV0aGlu
ZyBsaWtlIHRoZW0KICAgICBpZiAoc3RhcnQtPmlzQ29udGVudEVkaXRhYmxlKCkpIHsKICAgICAg
ICAgYm9vbCBkb1NwYXRpYWxOYXZpZ2F0aW9uID0gZmFsc2U7Ci0gICAgICAgIGlmIChmcmFtZS0+
c2V0dGluZ3MoKSAmJiBmcmFtZS0+c2V0dGluZ3MoKS0+aXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJs
ZWQoKSkgeworICAgICAgICBpZiAoaXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoZnJhbWUpKSB7
CiAgICAgICAgICAgICBpZiAoIWtldmVudC0+bW9kaWZpZXJzKCkpIHsKICAgICAgICAgICAgICAg
ICBzd2l0Y2ggKGtldmVudC0+d2luZG93c1ZpcnR1YWxLZXlDb2RlKCkpIHsKICAgICAgICAgICAg
ICAgICBjYXNlIFZLX0xFRlQ6Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>