Hi Chris, These patches generally make sense to me, but I have a few comments below.
> - if (_pixman_implementation_lookup_composite ( > - imp->toplevel, info->op, > - src_image->common.extended_format_code, src_flags, > - mask_format, mask_flags, > - dest_image->common.extended_format_code, info->dest_flags, > - &imp, &func)) > + _pixman_implementation_lookup_composite ( > + imp->toplevel, info->op, > + src_image->common.extended_format_code, src_flags, > + mask_format, mask_flags, > + dest_image->common.extended_format_code, info->dest_flags, > + &imp, &func); > { This looks like it leaves an isolated set of braces in the code. > diff --git a/pixman/pixman-glyph.c b/pixman/pixman-glyph.c > index 5451f42..5a271b6 100644 > --- a/pixman/pixman-glyph.c > +++ b/pixman/pixman-glyph.c > @@ -464,13 +464,12 @@ pixman_composite_glyphs_no_mask (pixman_op_t > op, > glyph_format = glyph_img->common.extended_format_code; > glyph_flags = glyph_img->common.flags; > > - if (! _pixman_implementation_lookup_composite ( > - get_implementation(), op, > - src->common.extended_format_code, src->common.flags, > - glyph_format, glyph_flags | extra, > - dest_format, dest_flags, > - &implementation, &func)) > - goto out; Was this patch generated as a diff against the first patch? I don't see "if (! _pixman_implementation_..." in the current code. > + _pixman_implementation_lookup_composite ( > + get_implementation(), op, > + src->common.extended_format_code, src->common.flags, > + glyph_format, glyph_flags | extra, > + dest_format, dest_flags, > + &implementation, &func); > } > > info.src_x = src_x + composite_box.x1 - dest_x; > @@ -574,13 +573,12 @@ add_glyphs (pixman_glyph_cache_t *cache, > white_src = TRUE; > } > > - if (! _pixman_implementation_lookup_composite ( > - get_implementation(), PIXMAN_OP_ADD, > - src_format, info.src_flags, > - mask_format, info.mask_flags, > - dest_format, dest_flags, > - &implementation, &func)) > - goto out; > + _pixman_implementation_lookup_composite ( > + get_implementation(), PIXMAN_OP_ADD, > + src_format, info.src_flags, > + mask_format, info.mask_flags, > + dest_format, dest_flags, > + &implementation, &func); > } > > +void > _pixman_implementation_lookup_composite (pixman_implementation_t *toplevel, > pixman_op_t op, > pixman_format_code_t src_format, > @@ -142,7 +148,11 @@ _pixman_implementation_lookup_composite > (pixman_implementation_t *toplevel, > ++info; > } > } > - return FALSE; > + > + /* We should never reach this point */ > + _pixman_log_error (FUNC, "No known composite function\n"); I think it would be useful to have some text about TLS most likely being broken. "No known composite function" isn't particularly informative. > diff --git a/pixman/pixman.c b/pixman/pixman.c > index 3fabed1..24c93c5 100644 > --- a/pixman/pixman.c > +++ b/pixman/pixman.c > @@ -678,10 +678,10 @@ pixman_image_composite32 (pixman_op_t op, > */ > op = optimize_operator (op, src_flags, mask_flags, dest_flags); > > - if (_pixman_implementation_lookup_composite ( > - get_implementation (), op, > - src_format, src_flags, mask_format, mask_flags, dest_format, > dest_flags, > - &imp, &func)) > + _pixman_implementation_lookup_composite ( > + get_implementation (), op, > + src_format, src_flags, mask_format, mask_flags, dest_format, dest_flags, > + &imp, &func); > { > pixman_composite_info_t info; > const pixman_box32_t *pbox; Another case of braces left in the code. Søren _______________________________________________ Pixman mailing list Pixman@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pixman