On Sun, 30 Sep 2012, Marcin Cieslak wrote:

> dtcreate crashed on 64-bit system when clicking
> "Find Set.." button.
>

I'm not going to apply this one, at least not without a better
understanding of what the real problem is...

> Crash happens in libXm:
>
[...]
>
>    { type = 3 '\003', /* XmATTACH_WIDGET */
>      w = 0x800000000, /* malformed XmATTACH_NONE ???
>      percent = 0,
>      offset = 10, /* specified as XmNbottomOffset */
>      value = 0,
>      tempValue = 0}
>
> XmATTACH_* values are defined in <Xm/Xm.h> as follows:
>
>   505  enum{   XmATTACH_NONE,                  XmATTACH_FORM,
>   506          XmATTACH_OPPOSITE_FORM,         XmATTACH_WIDGET,
>   507          XmATTACH_OPPOSITE_WIDGET,       XmATTACH_POSITION,
>   508          XmATTACH_SELF
>   509          } ;
>
> What is not clear to why XmATTACH_NONE - which should be (int)0 -
> becomes 0x800000000 - looks like a 64 bit bug somewhere.
>

Looks like menory corruption bug somewhere - somethingis scribbling
over this memory...

> Providing a long value on None (0L) as in this change fixes the
> problem.
>
> I understand is that it possible to use such an "empty" widget
> is to create additional space at the bottom of the newly created
> "icon_scrolled_win".
>
> What needs to be clarified - shouldn't be such an (int) value be
> automatically promoted to (long) (or XtArgVal, XtPointer, ...)

Yes, there is not problem I am aware of with int 0 being promoted to
long 0.  I've never heard of a problem where ints are erroneously
promoted to longs.  The other way around of course is problematic,
but... there is something else wrong here.

> and preserve the value 0? Lots of parameters seem to be
> passed as ints (for example dimensions) and they do not
> appear to cause any trouble.

Yep.

What I'm not sure of is the rules regarding promotion of enums to
longs.  Hmm.  What does the debugger say XmATTACH_NONE is?  What
happens if you just use '0' instead of None?

> ---
> cde/programs/dtcreate/icon_selection_dialog.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/cde/programs/dtcreate/icon_selection_dialog.c 
> b/cde/programs/dtcreate/icon_selection_dialog.c
> index 67b48fc..63a04cf 100644
> --- a/cde/programs/dtcreate/icon_selection_dialog.c
> +++ b/cde/programs/dtcreate/icon_selection_dialog.c
> @@ -1782,7 +1782,7 @@ static Widget   _Uxbuild_icon_selection_dialog(void)
>                         XmNleftWidget, icon_container_label,
>                         XmNleftAttachment, XmATTACH_OPPOSITE_WIDGET,
>                         XmNbottomOffset, 10,
> -                        XmNbottomWidget, XmATTACH_NONE,
> +                        XmNbottomWidget, None,
>                         XmNbottomAttachment, XmATTACH_WIDGET,
>                         NULL );
>
>

-- 
Jon Trulson

The Higgs Field is what make atoms matter.
                 -- Tom L.



------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://ad.doubleclick.net/clk;258768047;13503038;j?
http://info.appdynamics.com/FreeJavaPerformanceDownload.html
_______________________________________________
cdesktopenv-devel mailing list
cdesktopenv-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/cdesktopenv-devel

Reply via email to