Beispiel #1
0
static void
hash_to_list(const HashTable *h, const Pixel pixel, const uint32_t count, void *u)
{
   PixelHashData *d=(PixelHashData *)hashtable_get_user_data(h);
   PixelList **pl=(PixelList **)u;
   PixelList *p;
   int i;
   Pixel q;

   PIXEL_SCALE(&pixel,&q,d->scale);

   /* malloc check ok, small constant allocation */
   p=malloc(sizeof(PixelList));
   if (!p) return;

   p->flag=0;
   p->p=q;
   p->count=count;
   for (i=0;i<3;i++) {
      p->next[i]=pl[i];
      p->prev[i]=NULL;
      if (pl[i]) pl[i]->prev[i]=p;
      pl[i]=p;
   }
}
Beispiel #2
0
static void
hash_to_list(HashTable h, const void *key, const void *val, void *u)
{
   PixelHashData *d=(PixelHashData *)hashtable_get_user_data(h);
   PixelList **pl=(PixelList **)u;
   PixelList *p;
   Pixel *pixel=(Pixel *)&key;
   int i;
   Pixel q;
   int count=*(int *)&val;

   PIXEL_SCALE(pixel,&q,d->scale);

   p=malloc(sizeof(PixelList));
   if (!p) return;
   
   p->flag=0;
   p->p=q;
   p->count=count;
   for (i=0;i<3;i++) {
      p->next[i]=pl[i];
      p->prev[i]=NULL;
      if (pl[i]) pl[i]->prev[i]=p;
      pl[i]=p;
   }
}