/[LeafOK_CVS]/lbbs/src/menu.c
ViewVC logotype

Diff of /lbbs/src/menu.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.44 by sysadm, Sat May 17 15:39:51 2025 UTC Revision 1.46 by sysadm, Sun May 18 06:57:56 2025 UTC
# Line 1050  int unload_menu(MENU_SET *p_menu_set) Line 1050  int unload_menu(MENU_SET *p_menu_set)
1050          if (p_menu_set->p_menu_name_dict != NULL)          if (p_menu_set->p_menu_name_dict != NULL)
1051          {          {
1052                  trie_dict_destroy(p_menu_set->p_menu_name_dict);                  trie_dict_destroy(p_menu_set->p_menu_name_dict);
1053                    p_menu_set->p_menu_name_dict = NULL;
1054          }          }
1055    
1056          if (p_menu_set->p_menu_screen_dict != NULL)          if (p_menu_set->p_menu_screen_dict != NULL)
1057          {          {
1058                  trie_dict_destroy(p_menu_set->p_menu_screen_dict);                  trie_dict_destroy(p_menu_set->p_menu_screen_dict);
1059                    p_menu_set->p_menu_screen_dict = NULL;
1060          }          }
1061    
1062          unload_menu_shm(p_menu_set);          unload_menu_shm(p_menu_set);
# Line 1071  int unload_menu(MENU_SET *p_menu_set) Line 1073  int unload_menu(MENU_SET *p_menu_set)
1073  int load_menu_shm(MENU_SET *p_menu_set)  int load_menu_shm(MENU_SET *p_menu_set)
1074  {  {
1075          // Mount shared memory          // Mount shared memory
1076          if (p_menu_set->p_reserved != NULL)          if (p_menu_set->p_reserved == NULL)
1077          {          {
1078                  log_error("Menu is already loaded\n");                  p_menu_set->p_reserved = shmat(p_menu_set->shmid, NULL, SHM_RDONLY);
1079                  return -1;                  if (p_menu_set->p_reserved == (void *)-1)
1080                    {
1081                            log_error("shmat() error (%d)\n", errno);
1082                            return -1;
1083                    }
1084          }          }
1085    
         p_menu_set->p_reserved = shmat(p_menu_set->shmid, NULL, SHM_RDONLY);  
         if (p_menu_set->p_reserved == (void *)-1)  
         {  
                 log_error("shmat() error (%d)\n", errno);  
                 return -2;  
         }  
1086          p_menu_set->p_menu_pool = p_menu_set->p_reserved + MENU_SET_RESERVED_LENGTH;          p_menu_set->p_menu_pool = p_menu_set->p_reserved + MENU_SET_RESERVED_LENGTH;
1087          p_menu_set->p_menu_item_pool = p_menu_set->p_menu_pool + sizeof(MENU) * MAX_MENUS;          p_menu_set->p_menu_item_pool = p_menu_set->p_menu_pool + sizeof(MENU) * MAX_MENUS;
1088          p_menu_set->p_menu_screen_pool = p_menu_set->p_menu_item_pool + sizeof(MENU_ITEM) * MAX_MENUITEMS;          p_menu_set->p_menu_screen_pool = p_menu_set->p_menu_item_pool + sizeof(MENU_ITEM) * MAX_MENUITEMS;


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1