tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

add-cairo_scaled_font_get_hint_metrics (7512B)


      1 # HG changeset patch
      2 # User Mats Palmgren <mats@mozilla.com>
      3 # Parent  f3483af8ecf997453064201c49c48a682c7f3c29
      4 Bug 1377257 part 1 - Add cairo_scaled_font_get_hint_metrics to avoid malloc/free that is required to use cairo_scaled_font_get_font_options.  r=jfkthame
      5 
      6 diff --git a/gfx/cairo/add-cairo_scaled_font_get_hint_metrics b/gfx/cairo/add-cairo_scaled_font_get_hint_metrics
      7 new file mode 100644
      8 --- /dev/null
      9 +++ b/gfx/cairo/add-cairo_scaled_font_get_hint_metrics
     10 @@ -0,0 +1,82 @@
     11 +# HG changeset patch
     12 +# User Mats Palmgren <mats@mozilla.com>
     13 +# Parent  f3483af8ecf997453064201c49c48a682c7f3c29
     14 +Bug 1377257 part 1 - Add cairo_scaled_font_get_hint_metrics to avoid malloc/free that is required to use cairo_scaled_font_get_font_options.  r=jfkthame
     15 +
     16 +diff --git a/gfx/cairo/cairo/src/cairo-rename.h b/gfx/cairo/cairo/src/cairo-rename.h
     17 +--- a/gfx/cairo/cairo/src/cairo-rename.h
     18 ++++ b/gfx/cairo/cairo/src/cairo-rename.h
     19 +@@ -262,16 +262,17 @@
     20 + #define cairo_scale _moz_cairo_scale
     21 + #define cairo_scaled_font_create _moz_cairo_scaled_font_create
     22 + #define cairo_scaled_font_destroy _moz_cairo_scaled_font_destroy
     23 + #define cairo_scaled_font_extents _moz_cairo_scaled_font_extents
     24 + #define cairo_scaled_font_get_ctm _moz_cairo_scaled_font_get_ctm
     25 + #define cairo_scaled_font_get_font_face _moz_cairo_scaled_font_get_font_face
     26 + #define cairo_scaled_font_get_font_matrix _moz_cairo_scaled_font_get_font_matrix
     27 + #define cairo_scaled_font_get_font_options _moz_cairo_scaled_font_get_font_options
     28 ++#define cairo_scaled_font_get_hint_metrics _moz_cairo_scaled_font_get_hint_metrics
     29 + #define cairo_scaled_font_get_reference_count _moz_cairo_scaled_font_get_reference_count
     30 + #define cairo_scaled_font_get_scale_matrix _moz_cairo_scaled_font_get_scale_matrix
     31 + #define cairo_scaled_font_get_type _moz_cairo_scaled_font_get_type
     32 + #define cairo_scaled_font_get_user_data _moz_cairo_scaled_font_get_user_data
     33 + #define cairo_scaled_font_glyph_extents _moz_cairo_scaled_font_glyph_extents
     34 + #define cairo_scaled_font_reference _moz_cairo_scaled_font_reference
     35 + #define cairo_scaled_font_set_user_data _moz_cairo_scaled_font_set_user_data
     36 + #define cairo_scaled_font_status _moz_cairo_scaled_font_status
     37 +diff --git a/gfx/cairo/cairo/src/cairo-scaled-font.c b/gfx/cairo/cairo/src/cairo-scaled-font.c
     38 +--- a/gfx/cairo/cairo/src/cairo-scaled-font.c
     39 ++++ b/gfx/cairo/cairo/src/cairo-scaled-font.c
     40 +@@ -2983,8 +2983,28 @@ cairo_scaled_font_get_font_options (cair
     41 +     if (scaled_font->status) {
     42 + 	_cairo_font_options_init_default (options);
     43 + 	return;
     44 +     }
     45 + 
     46 +     _cairo_font_options_init_copy (options, &scaled_font->options);
     47 + }
     48 + slim_hidden_def (cairo_scaled_font_get_font_options);
     49 ++
     50 ++/**
     51 ++ * cairo_scaled_font_get_hint_metrics:
     52 ++ * @scaled_font: a #cairo_scaled_font_t
     53 ++ *
     54 ++ * Mozilla extension since the required malloc/free to use
     55 ++ * cairo_scaled_font_get_font_options() above is too slow.
     56 ++ **/
     57 ++cairo_public cairo_hint_metrics_t
     58 ++cairo_scaled_font_get_hint_metrics (cairo_scaled_font_t		*scaled_font)
     59 ++{
     60 ++    cairo_font_options_t options;
     61 ++    if (scaled_font->status) {
     62 ++	_cairo_font_options_init_default (&options);
     63 ++    } else {
     64 ++	_cairo_font_options_init_copy (&options, &scaled_font->options);
     65 ++    }
     66 ++    return options.hint_metrics;
     67 ++}
     68 ++slim_hidden_def (cairo_scaled_font_get_hint_metrics);
     69 +diff --git a/gfx/cairo/cairo/src/cairo.h b/gfx/cairo/cairo/src/cairo.h
     70 +--- a/gfx/cairo/cairo/src/cairo.h
     71 ++++ b/gfx/cairo/cairo/src/cairo.h
     72 +@@ -1493,16 +1493,21 @@ cairo_scaled_font_get_ctm (cairo_scaled_
     73 + cairo_public void
     74 + cairo_scaled_font_get_scale_matrix (cairo_scaled_font_t	*scaled_font,
     75 + 				    cairo_matrix_t	*scale_matrix);
     76 + 
     77 + cairo_public void
     78 + cairo_scaled_font_get_font_options (cairo_scaled_font_t		*scaled_font,
     79 + 				    cairo_font_options_t	*options);
     80 + 
     81 ++/* mozilla extension, see https://bugzilla.mozilla.org/show_bug.cgi?id=1377257 */
     82 ++cairo_public cairo_hint_metrics_t
     83 ++cairo_scaled_font_get_hint_metrics (cairo_scaled_font_t		*scaled_font);
     84 ++
     85 ++
     86 + 
     87 + /* Toy fonts */
     88 + 
     89 + cairo_public cairo_font_face_t *
     90 + cairo_toy_font_face_create (const char           *family,
     91 + 			    cairo_font_slant_t    slant,
     92 + 			    cairo_font_weight_t   weight);
     93 + 
     94 diff --git a/gfx/cairo/cairo/src/cairo-rename.h b/gfx/cairo/cairo/src/cairo-rename.h
     95 --- a/gfx/cairo/cairo/src/cairo-rename.h
     96 +++ b/gfx/cairo/cairo/src/cairo-rename.h
     97 @@ -262,16 +262,17 @@
     98  #define cairo_scale _moz_cairo_scale
     99  #define cairo_scaled_font_create _moz_cairo_scaled_font_create
    100  #define cairo_scaled_font_destroy _moz_cairo_scaled_font_destroy
    101  #define cairo_scaled_font_extents _moz_cairo_scaled_font_extents
    102  #define cairo_scaled_font_get_ctm _moz_cairo_scaled_font_get_ctm
    103  #define cairo_scaled_font_get_font_face _moz_cairo_scaled_font_get_font_face
    104  #define cairo_scaled_font_get_font_matrix _moz_cairo_scaled_font_get_font_matrix
    105  #define cairo_scaled_font_get_font_options _moz_cairo_scaled_font_get_font_options
    106 +#define cairo_scaled_font_get_hint_metrics _moz_cairo_scaled_font_get_hint_metrics
    107  #define cairo_scaled_font_get_reference_count _moz_cairo_scaled_font_get_reference_count
    108  #define cairo_scaled_font_get_scale_matrix _moz_cairo_scaled_font_get_scale_matrix
    109  #define cairo_scaled_font_get_type _moz_cairo_scaled_font_get_type
    110  #define cairo_scaled_font_get_user_data _moz_cairo_scaled_font_get_user_data
    111  #define cairo_scaled_font_glyph_extents _moz_cairo_scaled_font_glyph_extents
    112  #define cairo_scaled_font_reference _moz_cairo_scaled_font_reference
    113  #define cairo_scaled_font_set_user_data _moz_cairo_scaled_font_set_user_data
    114  #define cairo_scaled_font_status _moz_cairo_scaled_font_status
    115 diff --git a/gfx/cairo/cairo/src/cairo-scaled-font.c b/gfx/cairo/cairo/src/cairo-scaled-font.c
    116 --- a/gfx/cairo/cairo/src/cairo-scaled-font.c
    117 +++ b/gfx/cairo/cairo/src/cairo-scaled-font.c
    118 @@ -2983,8 +2983,28 @@ cairo_scaled_font_get_font_options (cair
    119      if (scaled_font->status) {
    120  	_cairo_font_options_init_default (options);
    121  	return;
    122      }
    123  
    124      _cairo_font_options_init_copy (options, &scaled_font->options);
    125  }
    126  slim_hidden_def (cairo_scaled_font_get_font_options);
    127 +
    128 +/**
    129 + * cairo_scaled_font_get_hint_metrics:
    130 + * @scaled_font: a #cairo_scaled_font_t
    131 + *
    132 + * Mozilla extension since the required malloc/free to use
    133 + * cairo_scaled_font_get_font_options() above is too slow.
    134 + **/
    135 +cairo_public cairo_hint_metrics_t
    136 +cairo_scaled_font_get_hint_metrics (cairo_scaled_font_t		*scaled_font)
    137 +{
    138 +    cairo_font_options_t options;
    139 +    if (scaled_font->status) {
    140 +	_cairo_font_options_init_default (&options);
    141 +    } else {
    142 +	_cairo_font_options_init_copy (&options, &scaled_font->options);
    143 +    }
    144 +    return options.hint_metrics;
    145 +}
    146 +slim_hidden_def (cairo_scaled_font_get_hint_metrics);
    147 diff --git a/gfx/cairo/cairo/src/cairo.h b/gfx/cairo/cairo/src/cairo.h
    148 --- a/gfx/cairo/cairo/src/cairo.h
    149 +++ b/gfx/cairo/cairo/src/cairo.h
    150 @@ -1493,16 +1493,19 @@ cairo_scaled_font_get_ctm (cairo_scaled_
    151  cairo_public void
    152  cairo_scaled_font_get_scale_matrix (cairo_scaled_font_t	*scaled_font,
    153  				    cairo_matrix_t	*scale_matrix);
    154  
    155  cairo_public void
    156  cairo_scaled_font_get_font_options (cairo_scaled_font_t		*scaled_font,
    157  				    cairo_font_options_t	*options);
    158  
    159 +cairo_public cairo_hint_metrics_t
    160 +cairo_scaled_font_get_hint_metrics (cairo_scaled_font_t		*scaled_font);
    161 +
    162  
    163  /* Toy fonts */
    164  
    165  cairo_public cairo_font_face_t *
    166  cairo_toy_font_face_create (const char           *family,
    167  			    cairo_font_slant_t    slant,
    168  			    cairo_font_weight_t   weight);
    169