[Webkit-unassigned] [Bug 32131] WebCore::canHaveChildrenForEditing ReadAV at NULL (cd05b3b20e0f4c6b3afe5d165a1798aa)

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Jan 18 22:04:25 PST 2010


https://bugs.webkit.org/show_bug.cgi?id=32131





--- Comment #10 from Tony Chang (Google) <tony at chromium.org>  2010-01-18 22:04:24 PST ---
(In reply to comment #8)
> (In reply to comment #7)
> > (In reply to comment #6)
> > > > --- a/WebCore/editing/CompositeEditCommand.cpp
> > > > +++ b/WebCore/editing/CompositeEditCommand.cpp
> > > > @@ -946,10 +946,10 @@ void CompositeEditCommand::moveParagraphs(const VisiblePosition& startOfParagrap
> > > >      
> > > >      setEndingSelection(VisibleSelection(start, end, DOWNSTREAM));
> > > >      deleteSelection(false, false, false, false);
> > > > -
> > > >      ASSERT(destination.deepEquivalent().node()->inDocument());
> > > >  
> > > >      cleanupAfterDeletion();
> > > > +    ASSERT(destination.deepEquivalent().node()->inDocument());
> > > >  
> > > 
> > > I dont' understand why you moved the ASSERT here. In moveparagraph destination
> > > should always be valid after deleteSelection, because destination represents
> > > the
> > > new location to move to and deleteSelection only affects the old stuff.
> > 
> > I was removing a blank line and adding another ASSERT.  The destination needs
> > to be valid after the cleanup so we know where to insert paragraph into.
> > 
> > 
> The point I'm trying to make is that it is not necessary to move the ASSERT.
> Destination is a position that outside the selection being deleted. The ASSERT
> should verify that there is no overlap between destination and the selection to
> be deleted. We should not make unnecessary code changes.

Ok, I put back the blank line.

> > > I believe the 19087.html is failing because you are moving the end selection in
> > > a case where it is not necessary.
> > > You should try to find out why this test fails, I don't think you should just
> > > re-baseline the test without an explanation.
> > 
> > You're right, the bug is lower: it's in applyStyle.  In
> > ApplyStyleCommand::applyBlockStyle, it tries to save the selection, move the
> > paragraphs, then restore the selection.  In this test case, it fails to restore
> > the selection to the right place.  It looks like this might be a bug in
> > TextIterator::rangeLength and TextIterator::rangeFromLocationAndLength not
> > agreeing on how to restore a range?  I'm not sure what rangeLength is supposed
> > to represent.
> I don't agree. The test is failing because one line is left behind and I
> believe it has to do with moving the end selection. TextIterator computes
> correctly the position starting from an offset expressed in terms of number of
> visible characters. It could be off only if a layout is needed.

I was agreeing with your assessment that moving the end selection was wrong. 
I've posted a new patch that works around the bug in
TextIterator::rangeFromLocationAndLength.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list