LCOV - code coverage report
Current view: top level - gfx/harfbuzz/src - hb-set.cc (source / functions) Hit Total Coverage
Test: output.info Lines: 20 68 29.4 %
Date: 2017-07-14 16:53:18 Functions: 7 26 26.9 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :  * Copyright © 2012  Google, Inc.
       3             :  *
       4             :  *  This is part of HarfBuzz, a text shaping library.
       5             :  *
       6             :  * Permission is hereby granted, without written agreement and without
       7             :  * license or royalty fees, to use, copy, modify, and distribute this
       8             :  * software and its documentation for any purpose, provided that the
       9             :  * above copyright notice and the following two paragraphs appear in
      10             :  * all copies of this software.
      11             :  *
      12             :  * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
      13             :  * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
      14             :  * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
      15             :  * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
      16             :  * DAMAGE.
      17             :  *
      18             :  * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
      19             :  * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
      20             :  * FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
      21             :  * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
      22             :  * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
      23             :  *
      24             :  * Google Author(s): Behdad Esfahbod
      25             :  */
      26             : 
      27             : #include "hb-set-private.hh"
      28             : 
      29             : 
      30             : /* Public API */
      31             : 
      32             : 
      33             : /**
      34             :  * hb_set_create: (Xconstructor)
      35             :  *
      36             :  * Return value: (transfer full):
      37             :  *
      38             :  * Since: 0.9.2
      39             :  **/
      40             : hb_set_t *
      41          30 : hb_set_create (void)
      42             : {
      43             :   hb_set_t *set;
      44             : 
      45          30 :   if (!(set = hb_object_create<hb_set_t> ()))
      46           0 :     return hb_set_get_empty ();
      47             : 
      48          30 :   set->clear ();
      49             : 
      50          30 :   return set;
      51             : }
      52             : 
      53             : /**
      54             :  * hb_set_get_empty:
      55             :  *
      56             :  * Return value: (transfer full):
      57             :  *
      58             :  * Since: 0.9.2
      59             :  **/
      60             : hb_set_t *
      61         107 : hb_set_get_empty (void)
      62             : {
      63             :   static const hb_set_t _hb_set_nil = {
      64             :     HB_OBJECT_HEADER_STATIC,
      65             :     true, /* in_error */
      66             : 
      67             :     {0} /* elts */
      68             :   };
      69             : 
      70         107 :   return const_cast<hb_set_t *> (&_hb_set_nil);
      71             : }
      72             : 
      73             : /**
      74             :  * hb_set_reference: (skip)
      75             :  * @set: a set.
      76             :  *
      77             :  * Return value: (transfer full):
      78             :  *
      79             :  * Since: 0.9.2
      80             :  **/
      81             : hb_set_t *
      82           0 : hb_set_reference (hb_set_t *set)
      83             : {
      84           0 :   return hb_object_reference (set);
      85             : }
      86             : 
      87             : /**
      88             :  * hb_set_destroy: (skip)
      89             :  * @set: a set.
      90             :  *
      91             :  * Since: 0.9.2
      92             :  **/
      93             : void
      94          30 : hb_set_destroy (hb_set_t *set)
      95             : {
      96          30 :   if (!hb_object_destroy (set)) return;
      97             : 
      98          30 :   set->fini ();
      99             : 
     100          30 :   free (set);
     101             : }
     102             : 
     103             : /**
     104             :  * hb_set_set_user_data: (skip)
     105             :  * @set: a set.
     106             :  * @key:
     107             :  * @data:
     108             :  * @destroy:
     109             :  * @replace:
     110             :  *
     111             :  * Return value:
     112             :  *
     113             :  * Since: 0.9.2
     114             :  **/
     115             : hb_bool_t
     116           0 : hb_set_set_user_data (hb_set_t           *set,
     117             :                       hb_user_data_key_t *key,
     118             :                       void *              data,
     119             :                       hb_destroy_func_t   destroy,
     120             :                       hb_bool_t           replace)
     121             : {
     122           0 :   return hb_object_set_user_data (set, key, data, destroy, replace);
     123             : }
     124             : 
     125             : /**
     126             :  * hb_set_get_user_data: (skip)
     127             :  * @set: a set.
     128             :  * @key:
     129             :  *
     130             :  * Return value: (transfer none):
     131             :  *
     132             :  * Since: 0.9.2
     133             :  **/
     134             : void *
     135           0 : hb_set_get_user_data (hb_set_t           *set,
     136             :                       hb_user_data_key_t *key)
     137             : {
     138           0 :   return hb_object_get_user_data (set, key);
     139             : }
     140             : 
     141             : 
     142             : /**
     143             :  * hb_set_allocation_successful:
     144             :  * @set: a set.
     145             :  *
     146             :  * 
     147             :  *
     148             :  * Return value: 
     149             :  *
     150             :  * Since: 0.9.2
     151             :  **/
     152             : hb_bool_t
     153           0 : hb_set_allocation_successful (const hb_set_t  *set HB_UNUSED)
     154             : {
     155           0 :   return !set->in_error;
     156             : }
     157             : 
     158             : /**
     159             :  * hb_set_clear:
     160             :  * @set: a set.
     161             :  *
     162             :  * 
     163             :  *
     164             :  * Since: 0.9.2
     165             :  **/
     166             : void
     167          10 : hb_set_clear (hb_set_t *set)
     168             : {
     169          10 :   set->clear ();
     170          10 : }
     171             : 
     172             : /**
     173             :  * hb_set_is_empty:
     174             :  * @set: a set.
     175             :  *
     176             :  * 
     177             :  *
     178             :  * Return value: 
     179             :  *
     180             :  * Since: 0.9.7
     181             :  **/
     182             : hb_bool_t
     183           0 : hb_set_is_empty (const hb_set_t *set)
     184             : {
     185           0 :   return set->is_empty ();
     186             : }
     187             : 
     188             : /**
     189             :  * hb_set_has:
     190             :  * @set: a set.
     191             :  * @codepoint: 
     192             :  *
     193             :  * 
     194             :  *
     195             :  * Return value: 
     196             :  *
     197             :  * Since: 0.9.2
     198             :  **/
     199             : hb_bool_t
     200          96 : hb_set_has (const hb_set_t *set,
     201             :             hb_codepoint_t  codepoint)
     202             : {
     203          96 :   return set->has (codepoint);
     204             : }
     205             : 
     206             : /**
     207             :  * hb_set_add:
     208             :  * @set: a set.
     209             :  * @codepoint: 
     210             :  *
     211             :  * 
     212             :  *
     213             :  * Since: 0.9.2
     214             :  **/
     215             : void
     216         384 : hb_set_add (hb_set_t       *set,
     217             :             hb_codepoint_t  codepoint)
     218             : {
     219         384 :   set->add (codepoint);
     220         384 : }
     221             : 
     222             : /**
     223             :  * hb_set_add_range:
     224             :  * @set: a set.
     225             :  * @first: 
     226             :  * @last: 
     227             :  *
     228             :  * 
     229             :  *
     230             :  * Since: 0.9.7
     231             :  **/
     232             : void
     233           0 : hb_set_add_range (hb_set_t       *set,
     234             :                   hb_codepoint_t  first,
     235             :                   hb_codepoint_t  last)
     236             : {
     237           0 :   set->add_range (first, last);
     238           0 : }
     239             : 
     240             : /**
     241             :  * hb_set_del:
     242             :  * @set: a set.
     243             :  * @codepoint: 
     244             :  *
     245             :  * 
     246             :  *
     247             :  * Since: 0.9.2
     248             :  **/
     249             : void
     250           0 : hb_set_del (hb_set_t       *set,
     251             :             hb_codepoint_t  codepoint)
     252             : {
     253           0 :   set->del (codepoint);
     254           0 : }
     255             : 
     256             : /**
     257             :  * hb_set_del_range:
     258             :  * @set: a set.
     259             :  * @first: 
     260             :  * @last: 
     261             :  *
     262             :  * 
     263             :  *
     264             :  * Since: 0.9.7
     265             :  **/
     266             : void
     267           0 : hb_set_del_range (hb_set_t       *set,
     268             :                   hb_codepoint_t  first,
     269             :                   hb_codepoint_t  last)
     270             : {
     271           0 :   set->del_range (first, last);
     272           0 : }
     273             : 
     274             : /**
     275             :  * hb_set_is_equal:
     276             :  * @set: a set.
     277             :  * @other: 
     278             :  *
     279             :  * 
     280             :  *
     281             :  * Return value: 
     282             :  *
     283             :  * Since: 0.9.7
     284             :  **/
     285             : hb_bool_t
     286           0 : hb_set_is_equal (const hb_set_t *set,
     287             :                  const hb_set_t *other)
     288             : {
     289           0 :   return set->is_equal (other);
     290             : }
     291             : 
     292             : /**
     293             :  * hb_set_set:
     294             :  * @set: a set.
     295             :  * @other: 
     296             :  *
     297             :  * 
     298             :  *
     299             :  * Since: 0.9.2
     300             :  **/
     301             : void
     302           0 : hb_set_set (hb_set_t       *set,
     303             :             const hb_set_t *other)
     304             : {
     305           0 :   set->set (other);
     306           0 : }
     307             : 
     308             : /**
     309             :  * hb_set_union:
     310             :  * @set: a set.
     311             :  * @other: 
     312             :  *
     313             :  * 
     314             :  *
     315             :  * Since: 0.9.2
     316             :  **/
     317             : void
     318           0 : hb_set_union (hb_set_t       *set,
     319             :               const hb_set_t *other)
     320             : {
     321           0 :   set->union_ (other);
     322           0 : }
     323             : 
     324             : /**
     325             :  * hb_set_intersect:
     326             :  * @set: a set.
     327             :  * @other: 
     328             :  *
     329             :  * 
     330             :  *
     331             :  * Since: 0.9.2
     332             :  **/
     333             : void
     334           0 : hb_set_intersect (hb_set_t       *set,
     335             :                   const hb_set_t *other)
     336             : {
     337           0 :   set->intersect (other);
     338           0 : }
     339             : 
     340             : /**
     341             :  * hb_set_subtract:
     342             :  * @set: a set.
     343             :  * @other: 
     344             :  *
     345             :  * 
     346             :  *
     347             :  * Since: 0.9.2
     348             :  **/
     349             : void
     350           0 : hb_set_subtract (hb_set_t       *set,
     351             :                  const hb_set_t *other)
     352             : {
     353           0 :   set->subtract (other);
     354           0 : }
     355             : 
     356             : /**
     357             :  * hb_set_symmetric_difference:
     358             :  * @set: a set.
     359             :  * @other: 
     360             :  *
     361             :  * 
     362             :  *
     363             :  * Since: 0.9.2
     364             :  **/
     365             : void
     366           0 : hb_set_symmetric_difference (hb_set_t       *set,
     367             :                              const hb_set_t *other)
     368             : {
     369           0 :   set->symmetric_difference (other);
     370           0 : }
     371             : 
     372             : /**
     373             :  * hb_set_invert:
     374             :  * @set: a set.
     375             :  *
     376             :  * 
     377             :  *
     378             :  * Since: 0.9.10
     379             :  **/
     380             : void
     381           0 : hb_set_invert (hb_set_t *set)
     382             : {
     383           0 :   set->invert ();
     384           0 : }
     385             : 
     386             : /**
     387             :  * hb_set_get_population:
     388             :  * @set: a set.
     389             :  *
     390             :  * Returns the number of numbers in the set.
     391             :  *
     392             :  * Return value: set population.
     393             :  *
     394             :  * Since: 0.9.7
     395             :  **/
     396             : unsigned int
     397           0 : hb_set_get_population (const hb_set_t *set)
     398             : {
     399           0 :   return set->get_population ();
     400             : }
     401             : 
     402             : /**
     403             :  * hb_set_get_min:
     404             :  * @set: a set.
     405             :  *
     406             :  * Finds the minimum number in the set.
     407             :  *
     408             :  * Return value: minimum of the set, or %HB_SET_VALUE_INVALID if set is empty.
     409             :  *
     410             :  * Since: 0.9.7
     411             :  **/
     412             : hb_codepoint_t
     413           0 : hb_set_get_min (const hb_set_t *set)
     414             : {
     415           0 :   return set->get_min ();
     416             : }
     417             : 
     418             : /**
     419             :  * hb_set_get_max:
     420             :  * @set: a set.
     421             :  *
     422             :  * Finds the maximum number in the set.
     423             :  *
     424             :  * Return value: minimum of the set, or %HB_SET_VALUE_INVALID if set is empty.
     425             :  *
     426             :  * Since: 0.9.7
     427             :  **/
     428             : hb_codepoint_t
     429           0 : hb_set_get_max (const hb_set_t *set)
     430             : {
     431           0 :   return set->get_max ();
     432             : }
     433             : 
     434             : /**
     435             :  * hb_set_next:
     436             :  * @set: a set.
     437             :  * @codepoint: (inout):
     438             :  *
     439             :  * 
     440             :  *
     441             :  * Return value: whether there was a next value.
     442             :  *
     443             :  * Since: 0.9.2
     444             :  **/
     445             : hb_bool_t
     446         116 : hb_set_next (const hb_set_t *set,
     447             :              hb_codepoint_t *codepoint)
     448             : {
     449         116 :   return set->next (codepoint);
     450             : }
     451             : 
     452             : /**
     453             :  * hb_set_next_range:
     454             :  * @set: a set.
     455             :  * @first: (out): output first codepoint in the range.
     456             :  * @last: (inout): input current last and output last codepoint in the range.
     457             :  *
     458             :  * Gets the next consecutive range of numbers in @set that
     459             :  * are greater than current value of @last.
     460             :  *
     461             :  * Return value: whether there was a next range.
     462             :  *
     463             :  * Since: 0.9.7
     464             :  **/
     465             : hb_bool_t
     466           0 : hb_set_next_range (const hb_set_t *set,
     467             :                    hb_codepoint_t *first,
     468             :                    hb_codepoint_t *last)
     469             : {
     470           0 :   return set->next_range (first, last);
     471             : }

Generated by: LCOV version 1.13