diff options
author | Alexander Larsson <alexl@redhat.com> | 2004-12-20 09:43:59 +0000 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2004-12-20 09:43:59 +0000 |
commit | 5c1c5e67dc18c3ad96a1d885b4c7331d48036158 (patch) | |
tree | 592c6ac3818b96d47dfec887f50d9e62720e5d51 /src/cairo-hash.c | |
parent | 8fe87a32a8bf4754a24e27aad74c1f1f5dbe9fc7 (diff) |
Add _cairo_gstate_restore_external_state, _cairo_fixed_integer_floor and _cairo_fixed_integer_ceil.
Call _cairo_gstate_restore_external_state on restore.
Fix cache-misses.
Implement floor and ceil
Restore surface clip region on restroe.
(_calculate_region_for_intermediate_clip_surface), (_cairo_gstate_clip_and_composite_trapezoids), (_cairo_gstate_show_surface), (_cairo_gstate_show_glyphs): Create intermediate clip surfaces of the minimal required size.
Diffstat (limited to 'src/cairo-hash.c')
-rw-r--r-- | src/cairo-hash.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/cairo-hash.c b/src/cairo-hash.c index 48848162..9e077784 100644 --- a/src/cairo-hash.c +++ b/src/cairo-hash.c @@ -180,10 +180,12 @@ _cache_lookup (cairo_cache_t *cache, if (predicate != NULL) { /* We are looking up an exact entry. */ - if (*probe != NULL - && *probe != DEAD_ENTRY - && (*probe)->hashcode == hash - && predicate (cache, key, *probe)) + if (*probe == NULL) + /* Found an empty spot, there can't be a match */ + break; + else if (*probe != DEAD_ENTRY + && (*probe)->hashcode == hash + && predicate (cache, key, *probe)) return probe; } else |