static inline void sweep_line_delete (sweep_line_t *sweep, rectangle_t *rectangle, cairo_boxes_t *out) { sweep_line_delete_edge (sweep, &rectangle->left, out); sweep_line_delete_edge (sweep, &rectangle->right, out); pqueue_pop (&sweep->pq); }
static inline cairo_bool_t sweep_line_delete (sweep_line_t *sweep, rectangle_t *rectangle) { cairo_bool_t update; update = TRUE; if (sweep->fill_rule == CAIRO_FILL_RULE_WINDING && rectangle->left.prev->dir == rectangle->left.dir) { update = rectangle->left.next != &rectangle->right; } sweep_line_delete_edge (sweep, &rectangle->left); sweep_line_delete_edge (sweep, &rectangle->right); rectangle_pop_stop (sweep); return update; }