Robert,

You don't show that you initialized recordH.  recordH is a MemHandle* 
-- a pointer to a MemHandle.  Is it initialized to anything sensible 
(e.g., recordH = &myHandle, where myHandle is a MemHandle)?

-- Keith


At 4:05 PM -0700 10/30/01, Robert D. Matthews wrote:
>I'm trying to lock a handle from a record with MemHandleLock() and when
>using POSE with a 4.0 rom, (m505), it gives a SysFatalAlert error with the
>message "MemoryMgr.c, Line: 4384, Free Handle."  The section of code that I
>am using (which works in other areas for a different database) looks like
>this:
>
>MemHandle * recordH;
>DmOpenRef dbRef;
>UInt16 index;
>MyRecType * packed;
>
>*recordH = DmGetRecord( db, index );
>// I've also tried using DmQueryRecord( db, index ); to no avail...
>
>packed = MemHandleLock( *recordH );
>// It's here where MemHandleLock returns the error.
>// If I open the debugger it appears that MemHandleLock
>// calls PrvHandleCheck twice before failing...
>
>After reading the archives, the best that I can come up with is that
>somewhere I may have some db code that is wrong.  Is there anyone who has
>insight into what might be the cause of this problem?  I'm really without a
>clue as to what might be causing this.  The record that I'm trying to lock
>is about 6.5k, but there is plenty of free memory on the device.  Doesn't
>MemHandleLock return null if it can't lock the memory?  Why would I be
>getting a "Free Handle" error when I am trying to lock the handle?  It just
>doesn't make any sense.
>
>Thanks in advance,
>
>-Robert
-- 

-- Keith Rollin
-- Palm OS Emulator engineer

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/tech/support/forums/

Reply via email to