Just guessing here, but does refP want to be a DWordPtr as you have it or
the address of a DWord?  That's the only thing that I can see that is
suspect.

Kevin

> -----Original Message-----
> From: Jason Bomers [mailto:[EMAIL PROTECTED]]
> Sent: Monday, June 28, 1999 11:41 AM
> To: [EMAIL PROTECTED]
> Subject: Strange Error on App Exit
> 
> 
> 
> I have a strange problem that I am just not seeing.  Any help would be
> appreciated.  I am using GCC and POSE 2.1d26.  Here is the 
> scenario:  I
> have an app that (among other things) does some periodic processing
> triggered by an alarm.  Here is the SetAlarm proc which 
> simply sets the
> alarm if one does not already exist:
> 
> ----------
> 
> static void SetAlarm(void)
> {
> UInt cardNo;
> LocalID dbID;
> DmSearchStateType searchInfo;
> DWordPtr    refP;
> ULong   alarmTime = 0;
> 
>     DmGetNextDatabaseByTypeCreator(true, &searchInfo,
> sysFileTApplication, kCreatorID, true, &cardNo, &dbID);
> //    alarmTime = AlmGetAlarm(cardNo, dbID, refP);
> //    if (alarmTime == 0)
> //        {
>         alarmTime = TimGetSeconds() + 3600;
>         AlmSetAlarm(cardNo, dbID, 0, alarmTime, true);
> //        }
> }
> 
> ----------
> 
> Here is the problem.  As you see it above (no check for existing
> alarm), the app runs fine.  If however, I put the 4 
> commented-out lines
> back in, the app will blow up.  However it does not blow up until you
> EXIT the app the second time (which is the first time you exit the app
> with an alarm already existing).  Hope that is not confusing -
> basically the flow is you run the app first time, it see's no alarm
> exists and sets one.  Now you leave and run the app again.  It sees an
> alarm does exist so does not try to set a new one and the app 
> continues
> as expected.  When you exit the app that second time, it will blow up.
> 
> The error from POSE when exiting is:
> The current application (unknown version) has failed.  
> "MemoryMgrNew.c,
> Line 3970, Invalid handle"
> 
> If I follow the execution of this thing within gdb, you can see
> everything executes just fine and watch it leave PilotMain, then the
> error occurs.  I can't see why the above code would cause this.
> 
> Thank you in advance,
>   Jason
> 
> _________________________________________________________
> Do You Yahoo!?
> Get your free @yahoo.com address at http://mail.yahoo.com
> 
> 

Reply via email to