[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdelibs/khtml/rendering
From:       Germain Garand <germain () ebooksfrance ! org>
Date:       2010-02-22 19:12:45
Message-ID: 1266865965.691262.1164.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1094435 by ggarand:

InlineBox::deleteLine shouldn't try to remove() the line box before
disposing of it.

This causes crashes in release mode because remove() will call to a
possibly invalid parent (this parent-is-invalid circumstance isn't fully
clear to me, though), the link to which is only nulled out in
Debug mode.

Let's play this low risk : align Release on Debug for branch backport...

... then stop removing the line box instead.

BUG: 193717
BUG: 206832

 M  +3 -1      render_line.cpp  


--- trunk/KDE/kdelibs/khtml/rendering/render_line.cpp #1094434:1094435
@@ -203,7 +203,9 @@
     while (child) {
         assert(this == child->parent());
         next = child->nextOnLine();
+#ifndef NDEBUG
         child->setParent(0);
+#endif
         child->deleteLine(arena);
         child = next;
     }
@@ -250,7 +252,7 @@
 {
     if (!m_extracted && m_object->isBox())
         static_cast<RenderBox*>(m_object)->setPlaceHolderBox(0);
-    detach(arena);
+    detach(arena, true /*no remove*/);
 }
 
 void InlineBox::extractLine()
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic