summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCharlie Brej <cbrej@cs.man.ac.uk>2009-11-22 22:53:12 +0000
committerCharlie Brej <cbrej@cs.man.ac.uk>2009-11-22 22:53:12 +0000
commit9df80dc483bf66457f0adb7312c7c3fb72f8cd66 (patch)
tree9193af0c3d014728e91d424981eef8e5920d51ce
parentb7c34f1857be6a4bd3e1d2a680d35346414e24b7 (diff)
[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.
-rw-r--r--src/libply/ply-region.c3
1 files changed, 2 insertions, 1 deletions
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