This is fixed... a missing header file... Stupid of me.
On 15 janv. 2010, at 17:22, Felix Ingrand wrote:
> I have a weird openmotif 2.3.2 bug in 64 bits under Snow Leopard MacPorts
> 1.8.2
>
> The following code:
> XmListDeselectAllItems(XmSelectionBoxGetChild(selectOpDialog,
> XmDIALOG_LIST));
> sometimes crashes
> tracing it in openMotif, I have change these 2 functions (note the fprintf I
> have added).
>
> void
> XmListDeselectAllItems(Widget w)
> {
> XmListWidget lw = (XmListWidget) w;
> int i;
>
> fprintf(stderr,"w: %ld %p\n", sizeof(w), w);
>
> _XmWidgetToAppContext(w);
>
> _XmAppLock(app);
>
> if (lw->list.itemCount < 1) {
> _XmAppUnlock(app);
> return;
> }
>
> if (lw->list.selectedItemCount > 0)
> {
> for (i = 0; i < lw->list.selectedPositionCount; i++)
> {
> int pos = lw->list.selectedPositions[i] - 1;
>
> lw->list.InternalList[pos]->selected = FALSE;
> lw->list.InternalList[pos]->last_selected = FALSE;
> DrawItem((Widget) lw, pos);
> }
>
> ClearSelectedList(lw);
> ClearSelectedPositions(lw);
> }
> _XmAppUnlock(app);
> }
>
> and
>
> Widget
> XmSelectionBoxGetChild(
> Widget sb,
> #if NeedWidePrototypes
> unsigned int which )
> #else
> unsigned char which )
> #endif /* NeedWidePrototypes */
> {
> /****************/
> Widget child = NULL;
> _XmWidgetToAppContext(sb);
> _XmAppLock(app);
>
> switch (which)
> {
> case XmDIALOG_LIST:
> child = SB_List (sb);
> break;
>
> case XmDIALOG_LIST_LABEL:
> child = SB_ListLabel (sb);
> break;
>
> case XmDIALOG_SELECTION_LABEL:
> child = SB_SelectionLabel (sb);
> break;
>
> case XmDIALOG_WORK_AREA:
> child = SB_WorkArea (sb);
> break;
>
> case XmDIALOG_TEXT:
> child = SB_Text (sb);
> break;
>
> case XmDIALOG_SEPARATOR:
> child = SB_Separator (sb);
> break;
>
> case XmDIALOG_OK_BUTTON:
> child = SB_OkButton (sb);
> break;
>
> case XmDIALOG_APPLY_BUTTON:
> child = SB_ApplyButton (sb);
> break;
>
> case XmDIALOG_CANCEL_BUTTON:
> child = SB_CancelButton (sb);
> break;
>
> case XmDIALOG_HELP_BUTTON:
> child = SB_HelpButton (sb);
> break;
>
> case XmDIALOG_DEFAULT_BUTTON:
> child = SB_DefaultButton (sb);
> break;
>
> default:
> XmeWarning( (Widget) sb, WARN_CHILD_TYPE);
> break;
> }
> _XmAppUnlock(app);
>
>
> fprintf(stderr, "child: %ld %p\n", sizeof(child), child);
>
>
> return (child);
> }
>
>
> I get the following trace and crash:
>
>
> child: 8 0x100a9c260
> w: 8 0x100a9c260
> child: 8 0x100a9c260
> w: 8 0x100a9c260
> child: 8 0x100aa8880
> w: 8 0xaa8880
>
> Program received signal EXC_BAD_ACCESS, Could not access memory.
> Reason: KERN_INVALID_ADDRESS at address: 0x0000000000aa8888
> 0x00000001003db1fc in XtWidgetToApplicationContext ()
> (gdb)
>
> Note the last w... For some reasons, during one of the call, the passed
> argument gets its 33rd bit cleared (like if it was casted in 32 bits at some
> point)....
>
> Any idea?
>
> --
> Felix
> Motivation: reward, bonus, carrot and stick... we got it wrong:
> http://tinyurl.com/yayq6u6
>
>
> _______________________________________________
> macports-users mailing list
> [email protected]
> http://lists.macosforge.org/mailman/listinfo.cgi/macports-users
>
--
Felix
Motivation: reward, bonus, carrot and stick... we got it wrong:
http://tinyurl.com/yayq6u6
_______________________________________________
macports-users mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macports-users