dtwm: Segfault when window opens
dtsession: segfault when an application calls SmcCloseConnection()
dtwm: Menus only work on screen 0
I've tried git master. Especially application builder still stores lots of int values in XmNuserData. This causes lots of stack smash crashes and other unexpected behaviour.
This bug is triggered by several other actions too. The problem are incorrect calls to XtVaGetValues() like this: some_32bit_type foo; XtVaGetValues(widget, XmNuserData, &foo, NULL); This causes stack corruption on 64 bit systems, because the type of XmNuserData is void* and thus one word length. Using an auxiliary variable of type size_t and casting it to the desired type afterwards solves the problem. some_32bit_type foo; size_t value; XtVaGetValues(widget, XmNuserData, &value, NULL); foo = (some_32bit_type)value;...
I've fixed a lot of these XmNuserData-problems. Now it doesn't crash, but still doesn't work as it should. This needs some more work. The Application Builder is a great peace of CDE as it accelerates GUI-development a lot.
The problem is, XmNuserData stores a pointer. So the length of this value depends on the word size of the operating system. Retrieving XmNuserData into an 32bit-int-type on a 64bit OS messes up the stack, causing strange things to happen.