Exemplo n.º 1
0
void BurnLibs( void )
/**************************/
/* let dict memory know it's no longer needed */
{
    file_list   *temp;
    dict_entry  *dict;

    for( temp = ObjLibFiles; temp != NULL; temp = temp->next_file ) {
        if( temp->status & STAT_AR_LIB ) {
            CacheFree( temp, temp->strtab );
            temp->strtab = NULL;
        }
        dict = temp->u.dict;
        if( dict == NULL )
            continue;
        if( temp->status & STAT_AR_LIB ) {
            CacheFree( temp, dict->a.filepostab - 1 );
            _LnkFree( dict->a.symbtab );
        } else {
            if( dict->o.cache != NULL ) {
                FreeDictCache( dict->o.cache, ( dict->o.pages / PAGES_IN_CACHE ) + 1 );
            }
        }
        _LnkFree( dict );
        temp->u.dict = NULL;
        FreeObjCache( temp );
    }
}
Exemplo n.º 2
0
/***********************************************************************
 * application is finished, so we have to clean the desktop behind us
 ***********************************************************************/
static void
StopApplication (void)
{
  gPrefs.curCat = DatabaseGetCat();
  PrefSavePrefs(&gPrefs);
  FrmCloseAllForms ();
  CacheFree();
  CloseDatabase();
}
Exemplo n.º 3
0
static void ClearCachedData( file_list *list )
/********************************************/
{
    readcache   *cache;
    readcache   *next;

    for( cache = ReadCacheList; cache != NULL; cache = next ) {
        next = cache->next;
        CacheFree( list, cache->data );
        _LnkFree( cache );
    }
    ReadCacheList = NULL;
}