diff --git a/src/cairo-bentley-ottmann.c b/src/cairo-bentley-ottmann.c index b4f70663a..928b6cd56 100644 --- a/src/cairo-bentley-ottmann.c +++ b/src/cairo-bentley-ottmann.c @@ -121,7 +121,7 @@ typedef struct _cairo_bo_event { #define SKIP_ELT_TO_EVENT(elt) SKIP_LIST_ELT_TO_DATA (cairo_bo_event_t, (elt)) typedef struct _cairo_bo_event_queue { - skip_list_t intersection_queue; + cairo_skip_list_t intersection_queue; cairo_bo_event_t *startstop_events; cairo_bo_event_t **sorted_startstop_event_ptrs; @@ -129,9 +129,9 @@ typedef struct _cairo_bo_event_queue { unsigned num_startstop_events; } cairo_bo_event_queue_t; -/* This structure extends skip_list_t, which must come first. */ +/* This structure extends cairo_skip_list_t, which must come first. */ typedef struct _cairo_bo_sweep_line { - skip_list_t active_edges; + cairo_skip_list_t active_edges; cairo_bo_edge_t *head; cairo_bo_edge_t *tail; int32_t current_y; @@ -697,7 +697,7 @@ _cairo_bo_event_queue_insert (cairo_bo_event_queue_t *queue, cairo_bo_event_t *event) { /* Don't insert if there's already an equivalent intersection event in the queue. */ - skip_list_insert (&queue->intersection_queue, event, + _cairo_skip_list_insert (&queue->intersection_queue, event, event->type == CAIRO_BO_EVENT_TYPE_INTERSECTION); } @@ -706,7 +706,7 @@ _cairo_bo_event_queue_delete (cairo_bo_event_queue_t *queue, cairo_bo_event_t *event) { if (CAIRO_BO_EVENT_TYPE_INTERSECTION == event->type) - skip_list_delete_given ( &queue->intersection_queue, &event->elt ); + _cairo_skip_list_delete_given ( &queue->intersection_queue, &event->elt ); } static cairo_bo_event_t * @@ -740,7 +740,7 @@ _cairo_bo_event_queue_init (cairo_bo_event_queue_t *event_queue, memset (event_queue, 0, sizeof(*event_queue)); - skip_list_init (&event_queue->intersection_queue, + _cairo_skip_list_init (&event_queue->intersection_queue, cairo_bo_event_compare_abstract, sizeof (cairo_bo_event_t)); if (0 == num_edges) @@ -789,7 +789,7 @@ _cairo_bo_event_queue_init (cairo_bo_event_queue_t *event_queue, static void _cairo_bo_event_queue_fini (cairo_bo_event_queue_t *event_queue) { - skip_list_fini (&event_queue->intersection_queue); + _cairo_skip_list_fini (&event_queue->intersection_queue); if (event_queue->startstop_events) free (event_queue->startstop_events); if (event_queue->sorted_startstop_event_ptrs) @@ -834,7 +834,7 @@ _cairo_bo_event_queue_insert_if_intersect_below_current_y (cairo_bo_event_queue_ static void _cairo_bo_sweep_line_init (cairo_bo_sweep_line_t *sweep_line) { - skip_list_init (&sweep_line->active_edges, + _cairo_skip_list_init (&sweep_line->active_edges, _sweep_line_elt_compare, sizeof (sweep_line_elt_t)); sweep_line->head = NULL; @@ -845,7 +845,7 @@ _cairo_bo_sweep_line_init (cairo_bo_sweep_line_t *sweep_line) static void _cairo_bo_sweep_line_fini (cairo_bo_sweep_line_t *sweep_line) { - skip_list_fini (&sweep_line->active_edges); + _cairo_skip_list_fini (&sweep_line->active_edges); } static void @@ -856,7 +856,7 @@ _cairo_bo_sweep_line_insert (cairo_bo_sweep_line_t *sweep_line, sweep_line_elt_t *sweep_line_elt; cairo_bo_edge_t **prev_of_next, **next_of_prev; - sweep_line_elt = skip_list_insert (&sweep_line->active_edges, &edge, + sweep_line_elt = _cairo_skip_list_insert (&sweep_line->active_edges, &edge, 1 /* unique inserts*/); next_elt = sweep_line_elt->elt.next[0]; @@ -884,7 +884,7 @@ _cairo_bo_sweep_line_delete (cairo_bo_sweep_line_t *sweep_line, { cairo_bo_edge_t **left_next, **right_prev; - skip_list_delete_given (&sweep_line->active_edges, &edge->sweep_line_elt->elt); + _cairo_skip_list_delete_given (&sweep_line->active_edges, &edge->sweep_line_elt->elt); left_next = &sweep_line->head; if (edge->prev) @@ -975,7 +975,7 @@ _cairo_bo_event_queue_print (cairo_bo_event_queue_t *event_queue) { skip_elt_t *elt; /* XXX: fixme to print the start/stop array too. */ - skip_list_t *queue = &event_queue->intersection_queue; + cairo_skip_list_t *queue = &event_queue->intersection_queue; cairo_bo_event_t *event; printf ("Event queue:\n"); diff --git a/src/cairo-skiplist-private.h b/src/cairo-skiplist-private.h index d776ad642..b152f4b15 100644 --- a/src/cairo-skiplist-private.h +++ b/src/cairo-skiplist-private.h @@ -34,7 +34,7 @@ * a skip_elt_t, (which will be allocated with variable size). * * The caller must also pass the size of the structure to - * skip_list_init. + * _cairo_skip_list_init. */ typedef struct _skip_elt { int prev_index; @@ -45,16 +45,16 @@ typedef struct _skip_elt { #define SKIP_LIST_ELT_TO_DATA(type, elt) ((type *) ((char *) (elt) - (sizeof (type) - sizeof (skip_elt_t)))) typedef int -(*skip_list_compare_t) (void *list, void *a, void *b); +(*cairo_skip_list_compare_t) (void *list, void *a, void *b); typedef struct _skip_list { - skip_list_compare_t compare; + cairo_skip_list_compare_t compare; size_t elt_size; size_t data_size; skip_elt_t *chains[MAX_LEVEL]; skip_elt_t *freelists[MAX_LEVEL]; int max_level; -} skip_list_t; +} cairo_skip_list_t; /* Initialize a new skip list. The compare function accepts a pointer * to the list as well as pointers to two elements. The function must @@ -65,8 +65,8 @@ typedef struct _skip_list { * list elements must have as its final member a skip_elt_t */ cairo_private void -skip_list_init (skip_list_t *list, - skip_list_compare_t compare, +_cairo_skip_list_init (cairo_skip_list_t *list, + cairo_skip_list_compare_t compare, size_t elt_size); @@ -74,7 +74,7 @@ skip_list_init (skip_list_t *list, * in it. (XXX: currently this simply deletes all elements.) */ cairo_private void -skip_list_fini (skip_list_t *list); +_cairo_skip_list_fini (cairo_skip_list_t *list); /* Insert a new element into the list at the correct sort order as * determined by compare. If unique is true, then duplicate elements @@ -82,18 +82,18 @@ skip_list_fini (skip_list_t *list); * Otherwise data will be copied (elt_size bytes from via * memcpy) and the new element is returned. */ cairo_private void * -skip_list_insert (skip_list_t *list, void *data, int unique); +_cairo_skip_list_insert (cairo_skip_list_t *list, void *data, int unique); /* Find an element which compare considers equal to */ cairo_private void * -skip_list_find (skip_list_t *list, void *data); +_cairo_skip_list_find (cairo_skip_list_t *list, void *data); /* Delete an element which compare considers equal to */ cairo_private void -skip_list_delete (skip_list_t *list, void *data); +_cairo_skip_list_delete (cairo_skip_list_t *list, void *data); /* Delete the given element from the list. */ cairo_private void -skip_list_delete_given (skip_list_t *list, skip_elt_t *given); +_cairo_skip_list_delete_given (cairo_skip_list_t *list, skip_elt_t *given); #endif diff --git a/src/cairo-skiplist.c b/src/cairo-skiplist.c index fbcab312c..451ecb06d 100644 --- a/src/cairo-skiplist.c +++ b/src/cairo-skiplist.c @@ -224,8 +224,8 @@ lfsr_random(void) * Initialize an empty skip list */ void -skip_list_init (skip_list_t *list, - skip_list_compare_t compare, +_cairo_skip_list_init (cairo_skip_list_t *list, + cairo_skip_list_compare_t compare, size_t elt_size) { int i; @@ -243,13 +243,13 @@ skip_list_init (skip_list_t *list, } void -skip_list_fini (skip_list_t *list) +_cairo_skip_list_fini (cairo_skip_list_t *list) { skip_elt_t *elt; int i; while ((elt = list->chains[0])) { - skip_list_delete_given (list, elt); + _cairo_skip_list_delete_given (list, elt); } for (i=0; ifreelists[i]; @@ -284,7 +284,7 @@ random_level (void) } static void * -alloc_node_for_level (skip_list_t *list, unsigned level) +alloc_node_for_level (cairo_skip_list_t *list, unsigned level) { if (list->freelists[level-1]) { skip_elt_t *elt = list->freelists[level-1]; @@ -295,7 +295,7 @@ alloc_node_for_level (skip_list_t *list, unsigned level) } static void -free_elt (skip_list_t *list, skip_elt_t *elt) +free_elt (cairo_skip_list_t *list, skip_elt_t *elt) { elt->prev = list->freelists[elt->prev_index]; list->freelists[elt->prev_index] = elt; @@ -305,7 +305,7 @@ free_elt (skip_list_t *list, skip_elt_t *elt) * Insert 'data' into the list */ void * -skip_list_insert (skip_list_t *list, void *data, int unique) +_cairo_skip_list_insert (cairo_skip_list_t *list, void *data, int unique) { skip_elt_t **update[MAX_LEVEL]; skip_elt_t *prev[MAX_LEVEL]; @@ -370,7 +370,7 @@ skip_list_insert (skip_list_t *list, void *data, int unique) } void * -skip_list_find (skip_list_t *list, void *data) +_cairo_skip_list_find (cairo_skip_list_t *list, void *data) { int i; skip_elt_t **next = list->chains; @@ -395,7 +395,7 @@ skip_list_find (skip_list_t *list, void *data) } void -skip_list_delete (skip_list_t *list, void *data) +_cairo_skip_list_delete (cairo_skip_list_t *list, void *data) { skip_elt_t **update[MAX_LEVEL], *prev[MAX_LEVEL]; skip_elt_t *elt, **next; @@ -431,7 +431,7 @@ skip_list_delete (skip_list_t *list, void *data) } void -skip_list_delete_given (skip_list_t *list, skip_elt_t *given) +_cairo_skip_list_delete_given (cairo_skip_list_t *list, skip_elt_t *given) { skip_elt_t **update[MAX_LEVEL], *prev[MAX_LEVEL]; skip_elt_t *elt, **next;