diff options
author | Charlie Brej <cbrej@cs.man.ac.uk> | 2009-11-22 22:53:12 +0000 |
---|---|---|
committer | Charlie Brej <cbrej@cs.man.ac.uk> | 2009-11-22 22:53:12 +0000 |
commit | 9df80dc483bf66457f0adb7312c7c3fb72f8cd66 (patch) | |
tree | 9193af0c3d014728e91d424981eef8e5920d51ce | |
parent | b7c34f1857be6a4bd3e1d2a680d35346414e24b7 (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.c | 3 |
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 |