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/
