]> granicus.if.org Git - vim/commitdiff
patch 8.2.4621: crash when using the tabline right-click menu v8.2.4621
authorBram Moolenaar <Bram@vim.org>
Thu, 24 Mar 2022 18:04:49 +0000 (18:04 +0000)
committerBram Moolenaar <Bram@vim.org>
Thu, 24 Mar 2022 18:04:49 +0000 (18:04 +0000)
Problem:    Crash when using the tabline right-click menu.
Solution:   Use XtPointer for XmNuserData. (closes #10009)

src/gui_motif.c
src/version.c

index 740288827bde631cc31f8122e733f678afae419a..56d3f35723fcd30a74721c32b1a02724e74451e2 100644 (file)
@@ -142,12 +142,12 @@ tabline_button_cb(
     XtPointer  client_data UNUSED,
     XtPointer  call_data UNUSED)
 {
-    int                cmd, tab_idx;
+    XtPointer  cmd, tab_idx;
 
     XtVaGetValues(w, XmNuserData, &cmd, NULL);
     XtVaGetValues(tabLine_menu, XmNuserData, &tab_idx, NULL);
 
-    send_tabline_menu_event(tab_idx, cmd);
+    send_tabline_menu_event((int)(long)tab_idx, (int)(long)cmd);
 }
 
 /*
@@ -254,7 +254,7 @@ tabline_menu_cb(
            XtVaGetValues(tab_w, XmNpageNumber, &tab_idx, NULL);
     }
 
-    XtVaSetValues(tabLine_menu, XmNuserData, tab_idx, NULL);
+    XtVaSetValues(tabLine_menu, XmNuserData, (XtPointer)(long)tab_idx, NULL);
     XtVaGetValues(tabLine_menu, XmNchildren, &children, XmNnumChildren,
                  &numChildren, NULL);
     XtManageChildren(children, numChildren);
@@ -517,7 +517,7 @@ gui_x11_create_widgets(void)
 
     // Add the buttons to the tabline popup menu
     n = 0;
-    XtSetArg(args[n], XmNuserData, TABLINE_MENU_CLOSE); n++;
+    XtSetArg(args[n], XmNuserData, (XtPointer)TABLINE_MENU_CLOSE); n++;
     xms = XmStringCreate((char *)"Close tab", STRING_TAG);
     XtSetArg(args[n], XmNlabelString, xms); n++;
     button = XmCreatePushButton(tabLine_menu, "Close", args, n);
@@ -526,7 +526,7 @@ gui_x11_create_widgets(void)
     XmStringFree(xms);
 
     n = 0;
-    XtSetArg(args[n], XmNuserData, TABLINE_MENU_NEW); n++;
+    XtSetArg(args[n], XmNuserData, (XtPointer)TABLINE_MENU_NEW); n++;
     xms = XmStringCreate((char *)"New Tab", STRING_TAG);
     XtSetArg(args[n], XmNlabelString, xms); n++;
     button = XmCreatePushButton(tabLine_menu, "New Tab", args, n);
@@ -535,7 +535,7 @@ gui_x11_create_widgets(void)
     XmStringFree(xms);
 
     n = 0;
-    XtSetArg(args[n], XmNuserData, TABLINE_MENU_OPEN); n++;
+    XtSetArg(args[n], XmNuserData, (XtPointer)TABLINE_MENU_OPEN); n++;
     xms = XmStringCreate((char *)"Open tab...", STRING_TAG);
     XtSetArg(args[n], XmNlabelString, xms); n++;
     button = XmCreatePushButton(tabLine_menu, "Open tab...", args, n);
index 6405e3b855b012f8af777643a3083410e0700600..bcb70e8d4d8d30efc44b6dd5fd9249b9b20f61d7 100644 (file)
@@ -750,6 +750,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    4621,
 /**/
     4620,
 /**/