Dan,
Are you sure about your analysis? DmReleaseResource doesn't do anything.
It's a simple "return 0;" statement. Additionally, the only part of the ROM
that reports "Not a Handle" is MemPtrRecoverHandle. It will report this if
the pointer passed in is deleted (or if the hOffset field in the chunk
header is NULL).
I think we make the ROM source code available so that you can easily find
out answers to questions like yours.
-- Keith Rollin
Dan Hewins <[EMAIL PROTECTED]> on 04/07/99 02:38:32 PM
Please respond to [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
cc: (Keith Rollin/HQ/3Com)
Subject: Re: Flash Errors (cause of (my) crash)
I narrowed the problem down to one call. I have a few bitmaps that I use
over and over again in my app so in StartApplication I do the following for
each one:
resH = DmGetResource(bitmapRsc, TriggerClosedBitmap);
ErrFatalDisplayIf(!resH, "Missing Closed Trigger bitmap");
TriggerClosed = MemHandleLock(resH);
Then from my StopApplication id do this for each one:
resH = MemPtrRecoverHandle(TriggerClosed);
ErrFatalDisplayIf(!resH, "Missing Closed Trigger bitmap");
MemHandleUnlock(resH);
DmReleaseResource(resH);
The call to DmReleaseResource is what's causing the crash when my app is in
Flash. The error I get is: "MemMgrNew.c line 1812: Not a Handle"
Here's a question: What does DmReleaseResource do, exactly? Is there any
way around this if my app is in Flash? Help appreciated.
Thanks,
Dan Hewins
Synergy Solutions, Inc.