fixing #73169 (show stopper for many)

Stephan Kulow coolo at kde.org
Sun Jan 25 10:12:18 GMT 2004


Hi!

There were quite some reports about it and it's also very easy to reproduce:
just print a random mail from kmail while having build without NDEBUG.

The assertion below is either wrong or renderobject should do more work
to set all children to not layouted.

I'd like to include one of the patches into 3.2.0, so that even people without
--disable-debug can print.

Greetings, Stephan

--- rendering/render_block.cpp  21 Jan 2004 15:24:13 -0000      1.22
+++ rendering/render_block.cpp  25 Jan 2004 10:06:19 -0000
@@ -423,7 +423,7 @@ void RenderBlock::layoutBlock(bool relay
     //    kdDebug( 6040 ) << renderName() << " " << this << "::layoutBlock() 
start" << endl;
     //     QTime t;
     //     t.start();
-    KHTMLAssert( !layouted() );
+    // KHTMLAssert( !layouted() );
     KHTMLAssert( minMaxKnown() );

     if (isInline()) // Inline <form>s inside various table elements can cause 
us to

!!!ALTERNATIVE PATCH !!!

Index: rendering/render_object.cpp
===================================================================
RCS file: /home/kde/kdelibs/khtml/rendering/render_object.cpp,v
retrieving revision 1.246
diff -u -3 -p -u -r1.246 render_object.cpp
--- rendering/render_object.cpp 19 Jan 2004 17:41:22 -0000      1.246
+++ rendering/render_object.cpp 25 Jan 2004 10:06:20 -0000
@@ -411,6 +411,9 @@ void RenderObject::setLayouted(bool b)
 {
     m_layouted = b;
     if (!b) {
+         for (RenderObject *child = firstChild(); child != 0; child = 
child->nextSibling())
+             child->setLayouted(b);
+
         RenderObject *o = container();
         RenderObject *root = this;


-- 
Pace Peace Paix Paz Frieden Pax Pokój Friður Fred Béke 和平
Hasiti Lapé Hetep Malu Mир Wolakota Santiphap Irini שלום Peoch
Shanti Vrede Baris Rój Mír Taika Rongo Sulh Py'guapy 평화




More information about the kfm-devel mailing list