/* add the picture as a key to point to this image in the cache */
g_hash_table_insert(self->cache->table, (*list)[0], self);
/* add the picture as a key to point to this image in the cache */
g_hash_table_insert(self->cache->table, (*list)[0], self);
#ifdef DEBUG
g_debug("Adding %s picture to the cache:\n "
"Image 0x%lx, w %d h %d Hash %u",
(*list == self->original ? "ORIGINAL" : "RESIZED"),
(gulong)self, pic->width, pic->height, RrImagePicHash(pic));
#endif
#ifdef DEBUG
g_debug("Adding %s picture to the cache:\n "
"Image 0x%lx, w %d h %d Hash %u",
(*list == self->original ? "ORIGINAL" : "RESIZED"),
(gulong)self, pic->width, pic->height, RrImagePicHash(pic));
#endif
#ifdef DEBUG
g_debug("Removing %s picture from the cache:\n "
"Image 0x%lx, w %d h %d Hash %u",
#ifdef DEBUG
g_debug("Removing %s picture from the cache:\n "
"Image 0x%lx, w %d h %d Hash %u",
(gulong)self, (*list)[i]->width, (*list)[i]->height,
RrImagePicHash((*list)[i]));
#endif
(gulong)self, (*list)[i]->width, (*list)[i]->height,
RrImagePicHash((*list)[i]));
#endif
/* remove the picture as a key in the cache */
g_hash_table_remove(self->cache->table, (*list)[i]);
/* remove the picture as a key in the cache */
g_hash_table_remove(self->cache->table, (*list)[i]);
#ifdef DEBUG
g_debug("Refcount to 0, removing ALL pictures from the cache:\n "
"Image 0x%lx", (gulong)self);
#endif
#ifdef DEBUG
g_debug("Refcount to 0, removing ALL pictures from the cache:\n "
"Image 0x%lx", (gulong)self);
#endif
while (self->n_original > 0)
RemovePicture(self, &self->original, 0, &self->n_original);
while (self->n_resized > 0)
while (self->n_original > 0)
RemovePicture(self, &self->original, 0, &self->n_original);
while (self->n_resized > 0)
/* make sure we don't already have this size.. */
for (i = 0; i < self->n_original; ++i)
if (self->original[i]->width == w && self->original[i]->height == h) {
/* make sure we don't already have this size.. */
for (i = 0; i < self->n_original; ++i)
if (self->original[i]->width == w && self->original[i]->height == h) {
#ifdef DEBUG
g_debug("Found duplicate ORIGINAL image:\n "
"Image 0x%lx, w %d h %d", (gulong)self, w, h);
#endif
#ifdef DEBUG
g_debug("Found duplicate ORIGINAL image:\n "
"Image 0x%lx, w %d h %d", (gulong)self, w, h);
#endif