[haiku-commits] r41256 - haiku/trunk/src/kits/interface/layouter

  • From: yourpalal2@xxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Fri, 15 Apr 2011 20:35:27 +0200 (CEST)

Author: yourpalal
Date: 2011-04-15 20:35:26 +0200 (Fri, 15 Apr 2011)
New Revision: 41256
Changeset: https://dev.haiku-os.org/changeset/41256
Ticket: https://dev.haiku-os.org/ticket/7446

Modified:
   haiku/trunk/src/kits/interface/layouter/CollapsingLayouter.cpp
Log:
Update CollapsingLayouter to fix crashes in a few applications. All these 
crashes were related to empty layouts. Fixes some of #7446


Modified: haiku/trunk/src/kits/interface/layouter/CollapsingLayouter.cpp
===================================================================
--- haiku/trunk/src/kits/interface/layouter/CollapsingLayouter.cpp      
2011-04-15 00:01:56 UTC (rev 41255)
+++ haiku/trunk/src/kits/interface/layouter/CollapsingLayouter.cpp      
2011-04-15 18:35:26 UTC (rev 41256)
@@ -195,7 +195,7 @@
 CollapsingLayouter::MinSize()
 {
        _ValidateLayouter();
-       return fLayouter->MinSize();
+       return fLayouter ? fLayouter->MinSize() : 0;
 }
 
 
@@ -203,7 +203,7 @@
 CollapsingLayouter::MaxSize()
 {
        _ValidateLayouter();
-       return fLayouter->MaxSize();
+       return fLayouter ? fLayouter->MaxSize() : B_SIZE_UNLIMITED;
 }
 
 
@@ -211,7 +211,7 @@
 CollapsingLayouter::PreferredSize()
 {
        _ValidateLayouter();
-       return fLayouter->PreferredSize();
+       return fLayouter ? fLayouter->PreferredSize() : 0;
 }
 
 
@@ -220,7 +220,8 @@
 {
        _ValidateLayouter();
 
-       return new ProxyLayoutInfo(fLayouter->CreateLayoutInfo(), 
fElementCount);
+       LayoutInfo* info = fLayouter ? fLayouter->CreateLayoutInfo() : NULL;
+       return new ProxyLayoutInfo(info, fElementCount);
 }
 
 
@@ -328,6 +329,9 @@
 void
 CollapsingLayouter::_SetWeights()
 {
+       if (!fLayouter)
+               return;
+
        for (int32 i = 0; i < fElementCount; i++) {
                fLayouter->SetWeight(fElements[i].position, 
fElements[i].weight);
        }


Other related posts:

  • » [haiku-commits] r41256 - haiku/trunk/src/kits/interface/layouter - yourpalal2