/* this implements a simple LRU algorithm */
-struct _FileCacheData {
+struct FileCacheData {
FileCacheReleaseFunc release;
GList *list;
gulong max_size;
gulong size;
};
-typedef struct _FileCacheEntry FileCacheEntry;
-struct _FileCacheEntry {
+struct FileCacheEntry {
FileData *fd;
gulong size;
};
FileCacheData *file_cache_new(FileCacheReleaseFunc release, gulong max_size)
{
- FileCacheData *fc = g_new(FileCacheData, 1);
+ auto fc = g_new(FileCacheData, 1);
fc->release = release;
- fc->list = NULL;
+ fc->list = nullptr;
fc->max_size = max_size;
fc->size = 0;
work = fc->list;
while (work)
{
- FileCacheEntry *fce = work->data;
+ auto fce = static_cast<FileCacheEntry *>(work->data);
if (fce->fd == fd)
{
/* entry exists */
while (fc->size > size && work)
{
GList *prev;
- last_fe = work->data;
+ last_fe = static_cast<FileCacheEntry *>(work->data);
prev = work->prev;
fc->list = g_list_delete_link(fc->list, work);
work = prev;
file_cache_set_size(fc, fc->max_size);
}
-//gulong file_cache_get_max_size(FileCacheData *fc)
-//{
- //return fc->max_size;
-//}
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wunused-function"
+gulong file_cache_get_max_size_unused(FileCacheData *fc)
+{
+ return fc->max_size;
+}
-//gulong file_cache_get_size(FileCacheData *fc)
-//{
- //return fc->size;
-//}
+gulong file_cache_get_size_unused(FileCacheData *fc)
+{
+ return fc->size;
+}
+#pragma GCC diagnostic pop
void file_cache_set_max_size(FileCacheData *fc, gulong size)
{
while (work)
{
GList *current = work;
- fe = work->data;
+ fe = static_cast<FileCacheEntry *>(work->data);
work = work->next;
if (fe->fd == fd)
while (work)
{
- FileCacheEntry *fe = work->data;
+ auto fe = static_cast<FileCacheEntry *>(work->data);
work = work->next;
DEBUG_1("cache entry: fc=%p [%lu] %s %ld", (void *)fc, ++n, fe->fd->path, fe->size);
}
static void file_cache_notify_cb(FileData *fd, NotifyType type, gpointer data)
{
- FileCacheData *fc = data;
+ auto fc = static_cast<FileCacheData *>(data);
if (type & (NOTIFY_REREAD | NOTIFY_CHANGE)) /* invalidate the entry on each file change */
{