reverted yet another accidental commit of testing code in r57505
[wxWidgets.git] / src / common / sizer.cpp
index 65d2f3d9cbb12d3bb355aea5b63c706f46e3fe86..939150a121ff2dae7636abf5ea88941f7fc0db47 100644 (file)
@@ -1325,32 +1325,32 @@ wxGridSizer::wxGridSizer( int cols, int vgap, int hgap )
 int wxGridSizer::CalcRowsCols(int& nrows, int& ncols) const
 {
     const int nitems = m_children.GetCount();
-    if ( nitems )
+    if ( m_cols && m_rows )
     {
-        if ( m_cols && m_rows )
-        {
-            // if both rows and columns are specified by user, use the provided
-            // values even if we don't have enough items
-            ncols = m_cols;
-            nrows = m_rows;
-        }
-        else if ( m_cols )
-        {
-            ncols = m_cols;
-            nrows = (nitems + m_cols - 1) / m_cols;
-        }
-        else if ( m_rows )
-        {
-            ncols = (nitems + m_rows - 1) / m_rows;
-            nrows = m_rows;
-        }
-        else // 0 columns, 0 rows?
-        {
-            wxFAIL_MSG( _T("grid sizer must have either rows or columns fixed") );
+        // if both rows and columns are specified by user, use the provided
+        // values even if we don't have enough items but check that we don't
+        // have too many of them as this is going to result in problems later
+        ncols = m_cols;
+        nrows = m_rows;
 
-            nrows =
-            ncols = 0;
-        }
+        wxASSERT_MSG( ncols*nrows <= nitems, "too many items in grid sizer" );
+    }
+    else if ( m_cols )
+    {
+        ncols = m_cols;
+        nrows = (nitems + m_cols - 1) / m_cols;
+    }
+    else if ( m_rows )
+    {
+        ncols = (nitems + m_rows - 1) / m_rows;
+        nrows = m_rows;
+    }
+    else // 0 columns, 0 rows?
+    {
+        wxFAIL_MSG( _T("grid sizer must have either rows or columns fixed") );
+
+        nrows =
+        ncols = 0;
     }
 
     return nitems;