Changeset 3876 for neercs/trunk


Ignore:
Timestamp:
Nov 2, 2009, 7:05:03 PM (10 years ago)
Author:
Pascal Terjan
Message:
  • Factorize screen_list liberation
Location:
neercs/trunk/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • neercs/trunk/src/main.c

    r3874 r3876  
    273273    if(screen_list)
    274274    {
    275         if(screen_list->dp)
    276             caca_free_display(screen_list->dp);
    277 
    278         if(screen_list->cv)
    279             caca_free_canvas(screen_list->cv);
    280 
    281         for(i = 0; i < screen_list->count; i++)
    282         {
    283             destroy_screen(screen_list->screen[i]);
    284         }
    285 
    286         if(screen_list->socket_path[SOCK_SERVER])
    287             free(screen_list->socket_path[SOCK_SERVER]);
    288 
    289         if(screen_list->socket_path[SOCK_CLIENT])
    290         {
    291             unlink(screen_list->socket_path[SOCK_CLIENT]);
    292             free(screen_list->socket_path[SOCK_CLIENT]);
    293         }
    294 
    295         if(screen_list->socket[SOCK_CLIENT])
    296             close(screen_list->socket[SOCK_CLIENT]);
    297 
    298         if(screen_list->socket[SOCK_SERVER])
    299             close(screen_list->socket[SOCK_SERVER]);
    300 
    301         if(screen_list->screen)
    302             free(screen_list->screen);
    303 
    304         struct option *option = screen_list->config;
    305 
    306         while(option)
    307         {
    308             struct option *kromeugnon = option;
    309             option = option->next;
    310             if(kromeugnon->key)   free(kromeugnon->key);
    311             if(kromeugnon->value) free(kromeugnon->value);
    312             free(kromeugnon);
    313         }
    314 
    315         for(i=0; i<screen_list->recurrent_list->count; i++)
    316         {
    317             remove_recurrent(screen_list->recurrent_list, i);
    318             i = 0;
    319         }
    320 
    321         if(screen_list->recurrent_list->recurrent)
    322             free(screen_list->recurrent_list->recurrent);
    323         if(screen_list->recurrent_list)
    324             free(screen_list->recurrent_list);
    325 
    326         if(screen_list->session_name)
    327             free(screen_list->session_name);
    328 
    329         if(screen_list->title)
    330             free(screen_list->title);
    331 
    332         free(screen_list);
     275        free_screen_list(screen_list);
    333276    }
    334277
     
    336279}
    337280
     281void free_screen_list(struct screen_list *screen_list)
     282{
     283    int i;
     284    struct option *option;
     285
     286    if(screen_list->dp)
     287        caca_free_display(screen_list->dp);
     288
     289    if(screen_list->cv)
     290        caca_free_canvas(screen_list->cv);
     291   
     292    for(i = 0; i < screen_list->count; i++)
     293    {
     294        destroy_screen(screen_list->screen[i]);
     295    }
     296
     297    if(screen_list->socket_path[SOCK_SERVER])
     298        free(screen_list->socket_path[SOCK_SERVER]);
     299   
     300    if(screen_list->socket_path[SOCK_CLIENT])
     301    {
     302        unlink(screen_list->socket_path[SOCK_CLIENT]);
     303        free(screen_list->socket_path[SOCK_CLIENT]);
     304    }
     305   
     306    if(screen_list->socket[SOCK_CLIENT])
     307        close(screen_list->socket[SOCK_CLIENT]);
     308   
     309    if(screen_list->socket[SOCK_SERVER])
     310        close(screen_list->socket[SOCK_SERVER]);
     311
     312    if(screen_list->screen)
     313        free(screen_list->screen);
     314
     315    option = screen_list->config;
     316   
     317    while(option)
     318    {
     319        struct option *kromeugnon = option;
     320        option = option->next;
     321        if(kromeugnon->key)   free(kromeugnon->key);
     322        if(kromeugnon->value) free(kromeugnon->value);
     323        free(kromeugnon);
     324    }
     325   
     326    for(i=0; i<screen_list->recurrent_list->count; i++)
     327    {
     328        remove_recurrent(screen_list->recurrent_list, i);
     329        i = 0;
     330    }
     331
     332    if(screen_list->recurrent_list->recurrent)
     333        free(screen_list->recurrent_list->recurrent);
     334    if(screen_list->recurrent_list)
     335        free(screen_list->recurrent_list);
     336   
     337    if(screen_list->session_name)
     338        free(screen_list->session_name);
     339
     340    if(screen_list->title)
     341        free(screen_list->title);
     342   
     343    free(screen_list);
     344}
    338345
    339346struct screen_list *create_screen_list(void)
  • neercs/trunk/src/neercs.h

    r3874 r3876  
    224224
    225225struct screen_list *create_screen_list(void);
     226void free_screen_list(struct screen_list *screen_list);
    226227
    227228int create_pty(char *cmd, unsigned int w, unsigned int h, int *cpid);
  • neercs/trunk/src/server.c

    r3555 r3876  
    441441    detach(screen_list);
    442442
    443     /* Clean up */
    444     caca_free_canvas(screen_list->cv);
    445 
    446     for(i = 0; i < screen_list->count; i++)
    447     {
    448         destroy_screen(screen_list->screen[i]);
    449     }
    450 
    451     if(screen_list->socket_path[SOCK_SERVER])
    452     {
    453         unlink(screen_list->socket_path[SOCK_SERVER]);
    454         free(screen_list->socket_path[SOCK_SERVER]);
    455     }
    456 
    457     if(screen_list->socket_path[SOCK_CLIENT])
    458         free(screen_list->socket_path[SOCK_CLIENT]);
    459 
    460     if(screen_list->socket[SOCK_SERVER])
    461         close(screen_list->socket[SOCK_SERVER]);
    462 
    463     if(screen_list->socket[SOCK_CLIENT])
    464         close(screen_list->socket[SOCK_CLIENT]);
    465 
    466     if(screen_list->screen) free(screen_list->screen);
    467 
    468     for(i=0; i<screen_list->recurrent_list->count; i++)
    469     {
    470         remove_recurrent(screen_list->recurrent_list, i);
    471         i = 0;
    472     }
    473 
    474     if(screen_list->recurrent_list->recurrent) free(screen_list->recurrent_list->recurrent);
    475     if(screen_list->recurrent_list)            free(screen_list->recurrent_list);
    476 
    477     if(screen_list->session_name) {
    478         free(screen_list->session_name);
    479         screen_list->session_name = NULL;
    480     }
    481 
    482     if(screen_list->title)
    483         free(screen_list->title);
    484 
    485     if(screen_list) {
    486         free(screen_list);
    487         screen_list = NULL;
    488     }
     443    free_screen_list(screen_list);
    489444
    490445    exit(0);
Note: See TracChangeset for help on using the changeset viewer.