>>>>> On Thu, 9 Nov 2000 15:22:16 +0100, Alexander Mai
><[EMAIL PROTECTED]> said:
Alexander> "Stupid question time" obviously ... :-)
Alexander> Our XmP.h features this code snippet:
Alexander> #ifdef __BOUNDS_CHECKING_ON
Alexander> /* This is a version that works with Bounds Checking GCC */
Alexander> #define XtWidth(w) (((XmGadget)(w))->rectangle.width)
Alexander> #define XtHeight(w) (((XmGadget)(w))->rectangle.height)
Alexander> #define XtX(w) (((XmGadget)(w))->rectangle.x)
Alexander> #define XtY(w) (((XmGadget)(w))->rectangle.y)
Alexander> #define XtBackground(w) (((Widget)(w))->core.background_pixel)
Alexander> #define XtBorderWidth(w) (((XmGadget)(w))->rectangle.border_width)
Alexander> #define XtSensitive(w) (((XmGadget)(w))->rectangle.sensitive && \
Alexander> ((XmGadget)(w))->rectangle.ancestor_sensitive)
Alexander> #define XtCoreProc(w,p)
(((XmGadget)(w))->core.widget_class->core_class.p)
Alexander> #else
Alexander> #define XtWidth(w) (((Widget)(w))->core.width)
Alexander> #define XtHeight(w) (((Widget)(w))->core.height)
Alexander> #define XtX(w) (((Widget)(w))->core.x)
Alexander> #define XtY(w) (((Widget)(w))->core.y)
Alexander> #define XtBackground(w) (((Widget)(w))->core.background_pixel)
Alexander> #define XtBorderWidth(w) (((Widget)(w))->core.border_width)
Alexander> #define XtSensitive(w) (((Widget)(w))->core.sensitive && \
Alexander> ((Widget)(w))->core.ancestor_sensitive)
Alexander> #define XtCoreProc(w,p) (((Widget)(w))->core.widget_class->core_class.p)
Alexander> #endif
Alexander> I know roughly what bounds checking extensions for gcc are,
Alexander> but I don't understand what's the purpose of this code?!
At a guess, sizeof(XmGadget) < sizeof(Widget) so casting a gadget to Widget
will trigger a bounds check?
__Martin