void StyleCustomFilterProgramCache::add(StyleCustomFilterProgram* program)
{
    CustomFilterProgramInfo key = programCacheKey(program);
    ASSERT(m_cache.find(key) == m_cache.end());
    m_cache.set(key, program);
    program->setCache(this);
}
void StyleCustomFilterProgramCache::remove(StyleCustomFilterProgram* program)
{
    CacheMap::iterator iter = m_cache.find(programCacheKey(program));
    ASSERT(iter != m_cache.end());
    m_cache.remove(iter);
}
void StyleCustomFilterProgramCache::remove(StyleCustomFilterProgram* program)
{
    ASSERT(m_cache.contains(programCacheKey(program)));
    m_cache.remove(programCacheKey(program));
}
StyleCustomFilterProgram* StyleCustomFilterProgramCache::lookup(StyleCustomFilterProgram* program) const
{
    return lookup(programCacheKey(program));
}
void StyleCustomFilterProgramCache::add(StyleCustomFilterProgram* program)
{
    ASSERT(!m_cache.contains(programCacheKey(program)));
    m_cache.set(programCacheKey(program), program);
    program->setCache(this);
}