On 11/29/2016 3:14 PM, Ken Brown wrote: > I've looked at this a little, and the crash occurs because of a bad value of > a pointer to a font list. I'm attaching an annotated transcript of a gdb > session that illustrates this. I didn't try to figure out where the bad > pointer came from.
I've done that now. There are three places in mosprshx.c where you cast a pointer to a pointer to an object of a different size. Interesting things happen when you dereference that pointer. The following patch gets rid of the crash: --- mosprshx.c~ 2016-12-04 10:02:36.706325200 -0500 +++ mosprshx.c 2016-12-04 10:28:35.160038200 -0500 @@ -235,7 +235,7 @@ } XtSetArg(al[ac],XmNcolumns,longestFixedColumnSize+1); ac++; if(toValue.addr) { - XtSetArg(al[ac],XmNfontList,*(unsigned int *)toValue.addr); ac++; + XtSetArg(al[ac],XmNfontList,*(XtArgVal *)toValue.addr); ac++; } for(i1=0 ; i1<nRows ; i1++) { sprintf(widgetName,"fixedColumnRow%d",i1); @@ -265,7 +265,7 @@ XtSetArg(al[ac],XmNcolumns,cellSize); ac++; } if(toValue.addr) { - XtSetArg(al[ac],XmNfontList,*(unsigned int *)toValue.addr); ac++; + XtSetArg(al[ac],XmNfontList,*(XtArgVal *)toValue.addr); ac++; } for(j1=0 ; j1<nColumns ; j1++) { sprintf(widgetName,"fixedRowColumn%d",j1); @@ -295,7 +295,7 @@ XtSetArg(al[ac],XmNmaxLength,cellSize); ac++; } if(toValue.addr) { - XtSetArg(al[ac],XmNfontList,*(unsigned int *)toValue.addr); ac++; + XtSetArg(al[ac],XmNfontList,*(XtArgVal *)toValue.addr); ac++; } sprintf(widgetName,"column%drow%d",j1,i1); variableRowAndColumnTF[loc] = XmCreateTextField(variableColumnFM[j1],widgetName,al,ac); loc++; Ken -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple