コード例 #1
0
static void HashValFree(void *val)
{
	seqCacheEntry* e = (seqCacheEntry*) val;

	if (e->ibuf) {
		/* fprintf(stderr, "Removing: %p, cnt: %d\n", e->ibuf, 
		   e->ibuf->refcounter); */
		IMB_freeImBuf(e->ibuf);
		MEM_CacheLimiter_unmanage(e->c_handle);
		ibufs_rem++;
	}

	e->ibuf = NULL;
	e->c_handle = NULL;

	BLI_mempool_free(entrypool, e);
}
コード例 #2
0
static void moviecache_valfree(void *val)
{
	MovieCacheItem *item = (MovieCacheItem *)val;
	MovieCache *cache = item->cache_owner;

	PRINT("%s: cache '%s' free item %p buffer %p\n", __func__, cache->name, item, item->ibuf);

	if (item->ibuf) {
		MEM_CacheLimiter_unmanage(item->c_handle);
		IMB_freeImBuf(item->ibuf);
	}

	if (item->priority_data && cache->prioritydeleterfp) {
		cache->prioritydeleterfp(item->priority_data);
	}

	BLI_mempool_free(item->cache_owner->items_pool, item);
}