A followup on what I wrote earlier today:

At 3:26 PM +0200 4/5/05, you, Lukas Zeller wrote:
today, I read a notice in this forum ("Updated NVFS_White_Paper.doc on PalmOne web site"). I downloaded the paper (apparently it was updated March 27th, 2005) and it has a clear statement about the original DmDeleteRecord bug as follows:

Quoted from NVFS_White_Paper.doc:
If your application does DmAttachRecord( database, &at, h, 0 ) followed immediately by DmDeleteRecord( database, at ) you will get the "VFSDBCache.c, Line:...., DeleteRecord() called on invalid record"
The workaround is to call DmQueryRecord( database, at) between DmAttachRecord and DmDeleteRecord.

At least on my Treo650 GSM, this new "Workaround" now reproducibly crashes the device with a


"MemoryMgr.c, Line:3238, MemSemaphoreSwitchMode() called when write access is not held as expected"

when calling DmDeleteRecord for the 127th time for AddressDB, with increasing index starting at 0. The number of records in AddressDB is 500.

After switching back to the workaround suggested by Chris Faherty (rezizing the record to zero and setting delete+dirty bits) everthing worked fine.

Regards,
--
Lukas Zeller ([EMAIL PROTECTED])
-
Synthesis AG, SyncML Solutions  & Sustainable Software Concepts
[EMAIL PROTECTED], http://www.synthesis.ch


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

Reply via email to