[SCM] Gerris Flow Solver branch, upstream, updated. b3aa46814a06c9cb2912790b23916ffb44f1f203

Stephane Popinet popinet at users.sf.net
Fri May 15 02:54:23 UTC 2009


The following commit has been merged in the upstream branch:
commit 7502657ce16e0dcb40e3a971d1b4c6ae69649edc
Author: Stephane Popinet <popinet at users.sf.net>
Date:   Tue May 22 08:53:05 2007 +1000

    Fix for degenerate case in gfs_domain_remove_droplets
    
    darcs-hash:20070521225305-d4795-a910bd5b6add710e0ba2c86c1197b7fed5ded5d7.gz

diff --git a/src/domain.c b/src/domain.c
index d7fe759..c51b64f 100644
--- a/src/domain.c
+++ b/src/domain.c
@@ -2748,20 +2748,21 @@ void gfs_domain_remove_droplets (GfsDomain * domain,
 			    (FttCellTraverseFunc) gfs_cell_reset, p.v);
   gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
 			    (FttCellTraverseFunc) tag_new_fraction_region, &p);
-  g_assert (p.sizes->len > 0);
-  if (min >= 0)
-    p.min = min;
-  else if (-min >= p.sizes->len)
-    p.min = 0;
-  else {
-    guint * tmp = g_malloc (p.sizes->len*sizeof (guint));
-    memcpy (tmp, p.sizes->data, p.sizes->len*sizeof (guint));
-    qsort (tmp, p.sizes->len, sizeof (guint), greater);
-    p.min = tmp[-1 - min];
-    g_free (tmp);
+  if (p.sizes->len > 0) {
+    if (min >= 0)
+      p.min = min;
+    else if (-min >= p.sizes->len)
+      p.min = 0;
+    else {
+      guint * tmp = g_malloc (p.sizes->len*sizeof (guint));
+      memcpy (tmp, p.sizes->data, p.sizes->len*sizeof (guint));
+      qsort (tmp, p.sizes->len, sizeof (guint), greater);
+      p.min = tmp[-1 - min];
+      g_free (tmp);
+    }
+    gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
+			      (FttCellTraverseFunc) reset_small_fraction, &p);
   }
-  gfs_domain_cell_traverse (domain, FTT_PRE_ORDER, FTT_TRAVERSE_LEAFS, -1,
-    			    (FttCellTraverseFunc) reset_small_fraction, &p);
   g_array_free (p.sizes, TRUE);
   gts_object_destroy (GTS_OBJECT (p.v));
 }

-- 
Gerris Flow Solver



More information about the debian-science-commits mailing list