From 9df80dc483bf66457f0adb7312c7c3fb72f8cd66 Mon Sep 17 00:00:00 2001 From: Charlie Brej Date: Sun, 22 Nov 2009 22:53:12 +0000 Subject: [PATCH] [region] Remove element only after processing Now that we cannot rely on the next_node element. We must finish processing the entry before removing it. Easiest way is to recurse and remove after return. --- src/libply/ply-region.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libply/ply-region.c b/src/libply/ply-region.c index b5e48fa5..74b5c864 100644 --- a/src/libply/ply-region.c +++ b/src/libply/ply-region.c @@ -283,9 +283,10 @@ merge_rectangle_with_sub_list (ply_region_t *region, * NNNNNNN */ case PLY_RECTANGLE_OVERLAP_ALL_EDGES: + merge_rectangle_with_sub_list (region, new_area, next_node); free (old_area); ply_list_remove_node (region->rectangle_list, node); - break; + return; /* NNN We need to split the new rectangle into * ONNNO two rectangles: the top and bottom row of Ns