<?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>56004</bug_id>
          
          <creation_ts>2011-03-09 02:31:08 -0800</creation_ts>
          <short_desc>REGRESSION: crash in nextLinePosition when extending selection forward by line in an empty document</short_desc>
          <delta_ts>2011-03-09 12:25:40 -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>Windows Vista</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Berend-Jan Wever">skylined</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>tkent</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>364390</commentid>
    <comment_count>0</comment_count>
      <attachid>85149</attachid>
    <who name="Berend-Jan Wever">skylined</who>
    <bug_when>2011-03-09 02:31:08 -0800</bug_when>
    <thetext>Created attachment 85149
Repro

Chromium: 
http://code.google.com/p/chromium/issues/detail?id=75410

Repro:
&lt;script&gt;
  setTimeout(function() {
    document.open();
    _Selection_4 = getSelection();
    _Selection_4.setPosition(document,0);
    _Selection_4.modify(&quot;extend&quot;,&quot;forward&quot;,&quot;line&quot;); // line, paragraph
  }, 1);
&lt;/script&gt;

id:             chrome.dll!WebCore::lastPositionInNode ReadAV@NULL (23c8d35ca79c9994c6691ce3fa381d59)
description:    Attempt to read from unallocated NULL pointer in chrome.dll!WebCore::lastPositionInNode
application:    Chromium 11.0.696.0
stack:          chrome.dll!WebCore::lastPositionInNode
                chrome.dll!WebCore::nextLinePosition
                chrome.dll!WebCore::nextParagraphPosition
                chrome.dll!WebCore::SelectionController::modifyExtendingForward
                chrome.dll!WebCore::SelectionController::modify
                chrome.dll!WebCore::DOMSelection::modify
                chrome.dll!WebCore::DOMSelectionInternal::modifyCallback
                chrome.dll!v8::internal::HandleApiCallHelper&lt;...&gt;
                chrome.dll!v8::internal::Builtin_HandleApiCall
                chrome.dll!v8::internal::Invoke
                chrome.dll!v8::internal::Execution::Call
                ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364392</commentid>
    <comment_count>1</comment_count>
    <who name="Berend-Jan Wever">skylined</who>
    <bug_when>2011-03-09 02:37:46 -0800</bug_when>
    <thetext>Offending code in &quot;\Source\WebCore\editing\visible_units.cpp&quot;:

VisiblePosition nextLinePosition(const VisiblePosition &amp;visiblePosition, int x)
{
&lt;snip&gt;
    // Could not find a next line. This means we must already be on the last line.
    // Move to the end of the content in this block, which effectively moves us
    // to the end of the line we&apos;re on.
    Element* rootElement = node-&gt;isContentEditable() ? node-&gt;rootEditableElement() : node-&gt;document()-&gt;documentElement();
    return VisiblePosition(lastPositionInNode(rootElement), DOWNSTREAM);
}

&quot;rootElement&quot; can be NULL through &quot;node-&gt;document()-&gt;documentElement()&quot;.
&quot;lastPositionInNode&quot; does not handle NULL ptrs.

A similar code construct exists in &quot;previousLinePosition&quot;, but I couldn&apos;t get that to crash.

The comment in the code above seems to be incorrect; &quot;Move to the end of the content in this block&quot; should read &quot;Move to the end of the document&quot; as far as I can tell. Assuming this is the case, one could replace the code with a call to &quot;endOfDocument&quot;. However, &quot;endOfDocument&quot; does not check for &quot;node-&gt;isContentEditable()&quot;, or handle things differently if this is true.

In other words - I don&apos;t know exactly what the code should do, so I cannot fix this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364397</commentid>
    <comment_count>2</comment_count>
    <who name="Berend-Jan Wever">skylined</who>
    <bug_when>2011-03-09 02:57:45 -0800</bug_when>
    <thetext>Note to self on variations and ids:
chrome.dll!WebCore::lastPositionInNode ReadAV@NULL (23c8d35ca79c9994c6691ce3fa381d59) # move/extend forward paragraph
chrome.dll!WebCore::lastPositionInNode ReadAV@NULL (72514a93116f979bdda8b1f03984c440) # move forward line
chrome.dll!WebCore::lastPositionInNode ReadAV@NULL (dfca1ef539706bcaffa24f0035dceab4) # extend forward line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364640</commentid>
    <comment_count>3</comment_count>
      <attachid>85201</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-09 11:19:02 -0800</bug_when>
    <thetext>Created attachment 85201
fixes the crash</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364641</commentid>
    <comment_count>4</comment_count>
      <attachid>85201</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-03-09 11:20:38 -0800</bug_when>
    <thetext>Comment on attachment 85201
fixes the crash

Seems like a null dereference and hence not security-sensitive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364642</commentid>
    <comment_count>5</comment_count>
      <attachid>85201</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-03-09 11:21:53 -0800</bug_when>
    <thetext>Comment on attachment 85201
fixes the crash

OK.  Should we do previousLinePosition too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364646</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-09 11:26:13 -0800</bug_when>
    <thetext>Wow! That was quick.

(In reply to comment #4)
&gt; (From update of attachment 85201 [details])
&gt; Seems like a null dereference and hence not security-sensitive.

Yes, I don&apos;t think this is a security vulnerability.

(In reply to comment #5)
&gt; (From update of attachment 85201 [details])
&gt; OK.  Should we do previousLinePosition too?

I can&apos;t reproduce the crash when I do backwards but you&apos;re right that we should probably fix there as well.  Should we include in this patch without a test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364649</commentid>
    <comment_count>7</comment_count>
      <attachid>85204</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-09 11:29:26 -0800</bug_when>
    <thetext>Created attachment 85204
Also fixes previousLinePosition</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364652</commentid>
    <comment_count>8</comment_count>
      <attachid>85201</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-09 11:35:18 -0800</bug_when>
    <thetext>Comment on attachment 85201
fixes the crash

(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; (From update of attachment 85201 [details] [details])
&gt; &gt; OK.  Should we do previousLinePosition too?
&gt; 
&gt; I can&apos;t reproduce the crash when I do backwards but you&apos;re right that we should probably fix there as well.  Should we include in this patch without a test?

I think we should given the symmetry of these two functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364687</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-09 12:25:07 -0800</bug_when>
    <thetext>Thanks for the review, Tony.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364688</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-03-09 12:25:40 -0800</bug_when>
    <thetext>Committed r80658: &lt;http://trac.webkit.org/changeset/80658&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>85149</attachid>
            <date>2011-03-09 02:31:08 -0800</date>
            <delta_ts>2011-03-09 02:31:08 -0800</delta_ts>
            <desc>Repro</desc>
            <filename>repro.html</filename>
            <type>text/html</type>
            <size>950</size>
            <attacher name="Berend-Jan Wever">skylined</attacher>
            
              <data encoding="base64">PHNjcmlwdD4KICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgZG9jdW1lbnQub3BlbigpOwog
ICAgX1NlbGVjdGlvbl80ID0gZ2V0U2VsZWN0aW9uKCk7CiAgICBfU2VsZWN0aW9uXzQuc2V0UG9z
aXRpb24oZG9jdW1lbnQsMCk7CiAgICBfU2VsZWN0aW9uXzQubW9kaWZ5KCJleHRlbmQiLCJmb3J3
YXJkIiwibGluZSIpOyAvLyBsaW5lLCBwYXJhZ3JhcGgKICAgIC8vIG5leHRMaW5lUG9zaXRpb24K
ICB9LCAxKTsKICAvKgoKVmlzaWJsZVBvc2l0aW9uIG5leHRMaW5lUG9zaXRpb24oY29uc3QgVmlz
aWJsZVBvc2l0aW9uICZ2aXNpYmxlUG9zaXRpb24sIGludCB4KQp7CjxzbmlwPgogICAgLy8gQ291
bGQgbm90IGZpbmQgYSBuZXh0IGxpbmUuIFRoaXMgbWVhbnMgd2UgbXVzdCBhbHJlYWR5IGJlIG9u
IHRoZSBsYXN0IGxpbmUuCiAgICAvLyBNb3ZlIHRvIHRoZSBlbmQgb2YgdGhlIGNvbnRlbnQgaW4g
dGhpcyBibG9jaywgd2hpY2ggZWZmZWN0aXZlbHkgbW92ZXMgdXMKICAgIC8vIHRvIHRoZSBlbmQg
b2YgdGhlIGxpbmUgd2UncmUgb24uCiAgICBFbGVtZW50KiByb290RWxlbWVudCA9IG5vZGUtPmlz
Q29udGVudEVkaXRhYmxlKCkgPyBub2RlLT5yb290RWRpdGFibGVFbGVtZW50KCkgOiBub2RlLT5k
b2N1bWVudCgpLT5kb2N1bWVudEVsZW1lbnQoKTsKICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb24o
cm9vdEVsZW1lbnQsIHJvb3RFbGVtZW50ID8gcm9vdEVsZW1lbnQtPmNoaWxkTm9kZUNvdW50KCkg
OiAwLCBET1dOU1RSRUFNKTsKfQoKQ29tcGFyZSB0bwogIApWaXNpYmxlUG9zaXRpb24gZW5kT2ZE
b2N1bWVudChjb25zdCBOb2RlKiBub2RlKQp7CiAgICBpZiAoIW5vZGUgfHwgIW5vZGUtPmRvY3Vt
ZW50KCkgfHwgIW5vZGUtPmRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpKQogICAgICAgIHJl
dHVybiBWaXNpYmxlUG9zaXRpb24oKTsKICAqLwo8L3NjcmlwdD4=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85201</attachid>
            <date>2011-03-09 11:19:02 -0800</date>
            <delta_ts>2011-03-09 11:35:18 -0800</delta_ts>
            <desc>fixes the crash</desc>
            <filename>bug-56004-20110309111901.patch</filename>
            <type>text/plain</type>
            <size>3625</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNjUzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDMtMDkgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUkVHUkVTU0lPTjogY3Jhc2ggaW4gbmV4dExpbmVQb3NpdGlvbiB3
aGVuIGV4dGVuZGluZyBzZWxlY3Rpb24gZm9yd2FyZCBieSBsaW5lIGluIGFuIGVtcHR5IGRvY3Vt
ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjAw
NAorCisgICAgICAgIFRoZSBjcmFzaCB3YXMgY2F1c2VkIGJ5IHRoZSBmYWxzZSBhc3N1bXB0aW9u
IHRoYXQgcm9vdEVkaXRhYmxlRWxlbWVudCgpIG9yIGRvY3VtZW50RWxlbWVudCgpCisgICAgICAg
IGFsd2F5cyByZXR1cm4gbm9uLW51bGwgcG9pbnRlci4gRml4ZWQgdGhlIGJ1ZyBieSBhZGRpbmcg
YW4gZWFybHkgZXhpdC4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQt
YnktbGluZS1pbi1lbXB0eS1kb2N1bWVudC5odG1sCisKKyAgICAgICAgKiBlZGl0aW5nL3Zpc2li
bGVfdW5pdHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bmV4dExpbmVQb3NpdGlvbik6CisKIDIw
MTEtMDMtMDkgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEplcmVteSBPcmxvdy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
dmlzaWJsZV91bml0cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy92
aXNpYmxlX3VuaXRzLmNwcAkocmV2aXNpb24gODA2NTApCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL3Zpc2libGVfdW5pdHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NzcsNiArNjc3LDggQEAg
VmlzaWJsZVBvc2l0aW9uIG5leHRMaW5lUG9zaXRpb24oY29uc3QgVgogICAgIC8vIE1vdmUgdG8g
dGhlIGVuZCBvZiB0aGUgY29udGVudCBpbiB0aGlzIGJsb2NrLCB3aGljaCBlZmZlY3RpdmVseSBt
b3ZlcyB1cwogICAgIC8vIHRvIHRoZSBlbmQgb2YgdGhlIGxpbmUgd2UncmUgb24uCiAgICAgRWxl
bWVudCogcm9vdEVsZW1lbnQgPSBub2RlLT5pc0NvbnRlbnRFZGl0YWJsZSgpID8gbm9kZS0+cm9v
dEVkaXRhYmxlRWxlbWVudCgpIDogbm9kZS0+ZG9jdW1lbnQoKS0+ZG9jdW1lbnRFbGVtZW50KCk7
CisgICAgaWYgKCFyb290RWxlbWVudCkKKyAgICAgICAgcmV0dXJuIFZpc2libGVQb3NpdGlvbigp
OwogICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb24obGFzdFBvc2l0aW9uSW5Ob2RlKHJvb3RFbGVt
ZW50KSwgRE9XTlNUUkVBTSk7CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNjUzKQorKysgTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEt
MDMtMDkgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUkVHUkVTU0lPTjogY3Jhc2ggaW4gbmV4
dExpbmVQb3NpdGlvbiB3aGVuIGV4dGVuZGluZyBzZWxlY3Rpb24gZm9yd2FyZCBieSBsaW5lIGlu
IGFuIGVtcHR5IGRvY3VtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01NjAwNAorCisgICAgICAgIEFkZGVkIGEgcmVncmVzc2lvbiB0ZXN0LgorCisg
ICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLWJ5LWxpbmUtaW4tZW1wdHktZG9jdW1l
bnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9leHRl
bmQtYnktbGluZS1pbi1lbXB0eS1kb2N1bWVudC5odG1sOiBBZGRlZC4KKwogMjAxMS0wMy0wOSAg
QnJpYW4gV2VpbnN0ZWluICA8YndlaW5zdGVpbkBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRl
IGV4cGVjdGVkIHJlc3VsdHMgb2Ygc3ZnL2Nzcy9nZXRDb21wdXRlZFN0eWxlLWJhc2ljIGFmdGVy
IHI4MDU4Mi4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1ieS1s
aW5lLWluLWVtcHR5LWRvY3VtZW50LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtYnktbGluZS1pbi1lbXB0eS1kb2N1bWVudC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9leHRlbmQtYnktbGluZS1pbi1lbXB0eS1kb2N1bWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMyBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgV2ViS2l0IGRvZXMgbm90IGNy
YXNoIHdoZW4gZXh0ZW5kaW5nIHNlbGVjdGlvbiBmb3J3YXJkIGJ5IGxpbmUgaW4gYW4gZW1wdHkg
ZG9jdW1lbnQuCisKK1BBU1MuCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9l
eHRlbmQtYnktbGluZS1pbi1lbXB0eS1kb2N1bWVudC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1ieS1saW5lLWluLWVtcHR5LWRvY3VtZW50
Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRl
bmQtYnktbGluZS1pbi1lbXB0eS1kb2N1bWVudC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDE4IEBACis8IURPQ1RZUEU+Cis8aHRtbD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxz
Y3JpcHQ+CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIGRv
Y3VtZW50Lm9wZW4oKTsKKyAgICBnZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbihkb2N1bWVudCwg
MCk7CisgICAgZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCJleHRlbmQiLCAiZm9yd2FyZCIsICJsaW5l
Iik7CisgICAgZG9jdW1lbnQud3JpdGVsbignVGhpcyB0ZXN0IGVuc3VyZXMgV2ViS2l0IGRvZXMg
bm90IGNyYXNoIHdoZW4gZXh0ZW5kaW5nIHNlbGVjdGlvbiBmb3J3YXJkIGJ5IGxpbmUgaW4gYW4g
ZW1wdHkgZG9jdW1lbnQuPGJyPjxicj4nKTsKKyAgICBkb2N1bWVudC53cml0ZWxuKCdQQVNTLicp
OworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85204</attachid>
            <date>2011-03-09 11:29:26 -0800</date>
            <delta_ts>2011-03-09 12:17:06 -0800</delta_ts>
            <desc>Also fixes previousLinePosition</desc>
            <filename>bug-56004-20110309112925.patch</filename>
            <type>text/plain</type>
            <size>4113</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgwNjUzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDMtMDkgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUkVHUkVTU0lPTjogY3Jhc2ggaW4gbmV4dExpbmVQb3NpdGlvbiB3
aGVuIGV4dGVuZGluZyBzZWxlY3Rpb24gZm9yd2FyZCBieSBsaW5lIGluIGFuIGVtcHR5IGRvY3Vt
ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjAw
NAorCisgICAgICAgIFRoZSBjcmFzaCB3YXMgY2F1c2VkIGJ5IHRoZSBmYWxzZSBhc3N1bXB0aW9u
IHRoYXQgcm9vdEVkaXRhYmxlRWxlbWVudCgpIG9yIGRvY3VtZW50RWxlbWVudCgpCisgICAgICAg
IGFsd2F5cyByZXR1cm4gbm9uLW51bGwgcG9pbnRlci4gRml4ZWQgdGhlIGJ1ZyBieSBhZGRpbmcg
YW4gZWFybHkgZXhpdC4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQt
YnktbGluZS1pbi1lbXB0eS1kb2N1bWVudC5odG1sCisKKyAgICAgICAgKiBlZGl0aW5nL3Zpc2li
bGVfdW5pdHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cHJldmlvdXNMaW5lUG9zaXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6bmV4dExpbmVQb3NpdGlvbik6CisKIDIwMTEtMDMtMDkgIFN0ZXZl
IEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEpl
cmVteSBPcmxvdy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNw
cAkocmV2aXNpb24gODA2NTApCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3Zpc2libGVfdW5p
dHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NzIsNiArNTcyLDggQEAgVmlzaWJsZVBvc2l0aW9u
IHByZXZpb3VzTGluZVBvc2l0aW9uKGNvbgogICAgIC8vIE1vdmUgdG8gdGhlIHN0YXJ0IG9mIHRo
ZSBjb250ZW50IGluIHRoaXMgYmxvY2ssIHdoaWNoIGVmZmVjdGl2ZWx5IG1vdmVzIHVzCiAgICAg
Ly8gdG8gdGhlIHN0YXJ0IG9mIHRoZSBsaW5lIHdlJ3JlIG9uLgogICAgIEVsZW1lbnQqIHJvb3RF
bGVtZW50ID0gbm9kZS0+aXNDb250ZW50RWRpdGFibGUoKSA/IG5vZGUtPnJvb3RFZGl0YWJsZUVs
ZW1lbnQoKSA6IG5vZGUtPmRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpOworICAgIGlmICgh
cm9vdEVsZW1lbnQpCisgICAgICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsKICAgICByZXR1
cm4gVmlzaWJsZVBvc2l0aW9uKGZpcnN0UG9zaXRpb25Jbk5vZGUocm9vdEVsZW1lbnQpLCBET1dO
U1RSRUFNKTsKIH0KIApAQCAtNjc3LDYgKzY3OSw4IEBAIFZpc2libGVQb3NpdGlvbiBuZXh0TGlu
ZVBvc2l0aW9uKGNvbnN0IFYKICAgICAvLyBNb3ZlIHRvIHRoZSBlbmQgb2YgdGhlIGNvbnRlbnQg
aW4gdGhpcyBibG9jaywgd2hpY2ggZWZmZWN0aXZlbHkgbW92ZXMgdXMKICAgICAvLyB0byB0aGUg
ZW5kIG9mIHRoZSBsaW5lIHdlJ3JlIG9uLgogICAgIEVsZW1lbnQqIHJvb3RFbGVtZW50ID0gbm9k
ZS0+aXNDb250ZW50RWRpdGFibGUoKSA/IG5vZGUtPnJvb3RFZGl0YWJsZUVsZW1lbnQoKSA6IG5v
ZGUtPmRvY3VtZW50KCktPmRvY3VtZW50RWxlbWVudCgpOworICAgIGlmICghcm9vdEVsZW1lbnQp
CisgICAgICAgIHJldHVybiBWaXNpYmxlUG9zaXRpb24oKTsKICAgICByZXR1cm4gVmlzaWJsZVBv
c2l0aW9uKGxhc3RQb3NpdGlvbkluTm9kZShyb290RWxlbWVudCksIERPV05TVFJFQU0pOwogfQog
CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiA4MDY1MykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDExLTAzLTA5ICBSeW9zdWtlIE5pd2EgIDxy
bml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFJFR1JFU1NJT046IGNyYXNoIGluIG5leHRMaW5lUG9zaXRpb24gd2hlbiBleHRl
bmRpbmcgc2VsZWN0aW9uIGZvcndhcmQgYnkgbGluZSBpbiBhbiBlbXB0eSBkb2N1bWVudAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYwMDQKKworICAg
ICAgICBBZGRlZCBhIHJlZ3Jlc3Npb24gdGVzdC4KKworICAgICAgICAqIGVkaXRpbmcvc2VsZWN0
aW9uL2V4dGVuZC1ieS1saW5lLWluLWVtcHR5LWRvY3VtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLWJ5LWxpbmUtaW4tZW1wdHktZG9j
dW1lbnQuaHRtbDogQWRkZWQuCisKIDIwMTEtMDMtMDkgIEJyaWFuIFdlaW5zdGVpbiAgPGJ3ZWlu
c3RlaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBleHBlY3RlZCByZXN1bHRzIG9mIHN2
Zy9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS1iYXNpYyBhZnRlciByODA1ODIuCkluZGV4OiBMYXlvdXRU
ZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtYnktbGluZS1pbi1lbXB0eS1kb2N1bWVudC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
ZXh0ZW5kLWJ5LWxpbmUtaW4tZW1wdHktZG9jdW1lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLWJ5LWxpbmUtaW4tZW1w
dHktZG9jdW1lbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMgQEAKK1Ro
aXMgdGVzdCBlbnN1cmVzIFdlYktpdCBkb2VzIG5vdCBjcmFzaCB3aGVuIGV4dGVuZGluZyBzZWxl
Y3Rpb24gZm9yd2FyZCBieSBsaW5lIGluIGFuIGVtcHR5IGRvY3VtZW50LgorCitQQVNTLgpJbmRl
eDogTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLWJ5LWxpbmUtaW4tZW1wdHkt
ZG9jdW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9leHRlbmQtYnktbGluZS1pbi1lbXB0eS1kb2N1bWVudC5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLWJ5LWxpbmUtaW4tZW1wdHktZG9j
dW1lbnQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOCBAQAorPCFET0NUWVBFPgorPGh0
bWw+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8c2NyaXB0PgorCitpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICBkb2N1bWVudC5vcGVuKCk7CisgICAgZ2V0
U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24oZG9jdW1lbnQsIDApOworICAgIGdldFNlbGVjdGlvbigp
Lm1vZGlmeSgibW92ZSIsICJmb3J3YXJkIiwgImxpbmUiKTsKKyAgICBkb2N1bWVudC53cml0ZWxu
KCdUaGlzIHRlc3QgZW5zdXJlcyBXZWJLaXQgZG9lcyBub3QgY3Jhc2ggd2hlbiBleHRlbmRpbmcg
c2VsZWN0aW9uIGZvcndhcmQgYnkgbGluZSBpbiBhbiBlbXB0eSBkb2N1bWVudC48YnI+PGJyPicp
OworICAgIGRvY3VtZW50LndyaXRlbG4oJ1BBU1MuJyk7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4K
</data>
<flag name="review"
          id="77300"
          type_id="1"
          status="+"
          setter="tony"
    />
          </attachment>
      

    </bug>

</bugzilla>