[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

20010501: Busy core dump



Scott and Steve,

I have found that Busy is leaving a core file (from NMAP2)
on my IRIX platform from the logo_animateFinish routine at the
busy.c call line 206:

XtRemoveTimeOut(_logoTimeoutId);

Looking at the code for the call to logo_animateFinish(),
I found that the variable _logoTimeoutId is defined twice.
First as a global at the top of the file:

XtIntervalId _logoTimeoutId = 0;

Then, it is redefined in the parameter list to the
function as an integer:

void logo_animateFinish ( _logoTimeoutId )
int _logoTimeoutId;
** Note that the prologue of the function does not match api **
        


The man page for XtRemoveTimeOut provides that the argument
should be of type XtIntervalId as is defined in the global:
 
XT FUNCTIONS                                 XtAppAddTimeOut(3Xt)

NAME
     XtAppAddTimeOut, XtRemoveTimeOut - register and remove
     timeouts

SYNTAX
     void XtRemoveTimeOut(timer)
           XtIntervalId timer;

Since the _logoTimeoutId is a global, I changed the argument name in
the parameter list to:

void logo_animateFinish ( int _dummy )


This allows the global variable to be used in the routine. The core
dumps have stopped. I believe that the busy cursor is correctly displayed.
I'm not clear from the prologue and the prototype at the top of
the routine for logo_animateFinish how to rectify these 2 uses of
the same variable name.

Steve

------------------------------------------------------------

Steve Chiswell
Unidata User Support