Back to index

glibc  2.9
Functions
coll-lookup.c File Reference
#include <stdint.h>

Go to the source code of this file.

Functions

int32_t internal_function __collidx_table_lookup (const char *table, uint32_t wc)
uint32_t internal_function __collseq_table_lookup (const char *table, uint32_t wc)

Function Documentation

Definition at line 25 of file coll-lookup.c.

{
  uint32_t shift1 = ((const uint32_t *) table)[0];
  uint32_t index1 = wc >> shift1;
  uint32_t bound = ((const uint32_t *) table)[1];
  if (index1 < bound)
    {
      uint32_t lookup1 = ((const uint32_t *) table)[5 + index1];
      if (lookup1 != 0)
       {
         uint32_t shift2 = ((const uint32_t *) table)[2];
         uint32_t mask2 = ((const uint32_t *) table)[3];
         uint32_t index2 = (wc >> shift2) & mask2;
         uint32_t lookup2 = ((const uint32_t *)(table + lookup1))[index2];
         if (lookup2 != 0)
           {
             uint32_t mask3 = ((const uint32_t *) table)[4];
             uint32_t index3 = wc & mask3;
             int32_t lookup3 = ((const int32_t *)(table + lookup2))[index3];

             return lookup3;
           }
       }
    }
  return 0;
}

Here is the caller graph for this function:

Definition at line 56 of file coll-lookup.c.

{
  uint32_t shift1 = ((const uint32_t *) table)[0];
  uint32_t index1 = wc >> shift1;
  uint32_t bound = ((const uint32_t *) table)[1];
  if (index1 < bound)
    {
      uint32_t lookup1 = ((const uint32_t *) table)[5 + index1];
      if (lookup1 != 0)
       {
         uint32_t shift2 = ((const uint32_t *) table)[2];
         uint32_t mask2 = ((const uint32_t *) table)[3];
         uint32_t index2 = (wc >> shift2) & mask2;
         uint32_t lookup2 = ((const uint32_t *)(table + lookup1))[index2];
         if (lookup2 != 0)
           {
             uint32_t mask3 = ((const uint32_t *) table)[4];
             uint32_t index3 = wc & mask3;
             uint32_t lookup3 = ((const uint32_t *)(table + lookup2))[index3];

             return lookup3;
           }
       }
    }
  return ~((uint32_t) 0);
}

Here is the caller graph for this function: