jdk/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-cache-private.hh
changeset 43232 8e39ad39979f
parent 34414 e496a8d8fc8a
equal deleted inserted replaced
43231:4885b2a3898b 43232:8e39ad39979f
    43     memset (values, 255, sizeof (values));
    43     memset (values, 255, sizeof (values));
    44   }
    44   }
    45 
    45 
    46   inline bool get (unsigned int key, unsigned int *value)
    46   inline bool get (unsigned int key, unsigned int *value)
    47   {
    47   {
    48     unsigned int k = key & ((1<<cache_bits)-1);
    48     unsigned int k = key & ((1u<<cache_bits)-1);
    49     unsigned int v = values[k];
    49     unsigned int v = values[k];
    50     if ((v >> value_bits) != (key >> cache_bits))
    50     if ((v >> value_bits) != (key >> cache_bits))
    51       return false;
    51       return false;
    52     *value = v & ((1<<value_bits)-1);
    52     *value = v & ((1u<<value_bits)-1);
    53     return true;
    53     return true;
    54   }
    54   }
    55 
    55 
    56   inline bool set (unsigned int key, unsigned int value)
    56   inline bool set (unsigned int key, unsigned int value)
    57   {
    57   {
    58     if (unlikely ((key >> key_bits) || (value >> value_bits)))
    58     if (unlikely ((key >> key_bits) || (value >> value_bits)))
    59       return false; /* Overflows */
    59       return false; /* Overflows */
    60     unsigned int k = key & ((1<<cache_bits)-1);
    60     unsigned int k = key & ((1u<<cache_bits)-1);
    61     unsigned int v = ((key>>cache_bits)<<value_bits) | value;
    61     unsigned int v = ((key>>cache_bits)<<value_bits) | value;
    62     values[k] = v;
    62     values[k] = v;
    63     return true;
    63     return true;
    64   }
    64   }
    65 
    65 
    66   private:
    66   private:
    67   unsigned int values[1<<cache_bits];
    67   unsigned int values[1u<<cache_bits];
    68 };
    68 };
    69 
    69 
    70 typedef hb_cache_t<21, 16, 8> hb_cmap_cache_t;
    70 typedef hb_cache_t<21, 16, 8> hb_cmap_cache_t;
    71 typedef hb_cache_t<16, 24, 8> hb_advance_cache_t;
    71 typedef hb_cache_t<16, 24, 8> hb_advance_cache_t;
    72 
    72