@@ -6091,15 +6091,15 @@ SDL_MenuItem* SDL_CreateMenuBarItem(SDL_MenuBar* menu_bar, const char *name, SDL
60916091 }
60926092
60936093 // Get the last item in the list and insert our new item.
6094- if (menu_bar -> item_list ) {
6095- SDL_MenuItem * last = menu_bar -> item_list ;
6094+ if (menu_bar -> common . next ) {
6095+ SDL_MenuItem * common = menu_bar -> common . next ;
60966096
6097- while (last -> common .next ) last = last -> common .next ;
6097+ while (common -> common .next ) common = common -> common .next ;
60986098
6099- last -> common .next = menu_item ;
6100- menu_item -> common .prev = last ;
6099+ common -> common .next = menu_item ;
6100+ menu_item -> common .prev = common ;
61016101 } else {
6102- menu_bar -> item_list = menu_item ;
6102+ menu_bar -> common . next = menu_item ;
61036103 }
61046104
61056105 return menu_item ;
@@ -6120,15 +6120,15 @@ SDL_MenuItem* SDL_CreateMenuItem(SDL_Menu* menu, const char *name, SDL_MenuItemT
61206120 }
61216121
61226122 // Get the last item in the list and insert our new item.
6123- if (menu -> menuitem_list ) {
6124- SDL_MenuItem * last = menu -> menuitem_list ;
6123+ if (menu -> common . next ) {
6124+ SDL_MenuItem * current = menu -> common . next ;
61256125
6126- while (last -> common .next ) last = last -> common .next ;
6126+ while (current -> common .next ) current = current -> common .next ;
61276127
6128- last -> common .next = menu_item ;
6129- menu_item -> common .prev = last ;
6128+ current -> common .next = menu_item ;
6129+ menu_item -> common .prev = current ;
61306130 } else {
6131- menu -> menuitem_list = menu_item ;
6131+ menu -> common . next = menu_item ;
61326132 }
61336133
61346134 return menu_item ;
@@ -6156,8 +6156,20 @@ bool SDL_EnableMenuItem(SDL_MenuItem* menu_item, bool enabled)
61566156 return _this -> EnableMenuItem (menu_item , enabled );
61576157}
61586158
6159+ static void SDL_DestroyMenuItem (SDL_MenuItem * menu_item ) {
6160+ for (SDL_MenuItem * current = menu_item -> common .next ; current != NULL ; current = current -> common .next ) {
6161+ SDL_DestroyMenuItem (current );
6162+ }
6163+
6164+ _this -> DestroyMenuItem (menu_item );
6165+ SDL_free (menu_item );
6166+ }
6167+
61596168bool SDL_DestroyMenuBar (SDL_MenuBar * menu_bar )
61606169{
6170+ bool ret = _this -> DestroyMenuBar (menu_bar );
6171+ SDL_DestroyMenuItem ((SDL_MenuItem * )menu_bar );
6172+
61616173 return true;
61626174}
61636175
0 commit comments