I've committed a large amount of changes to the viewer code to fix NVFS crashes (e.g., #1511, perhaps) and adhere to the White Paper restrictions on use of DmQueryRecord(). It is crucial that future code accessing DB records adhere to what I wrote in a comment at the beginning of ramfile.c. This is really all quite essential, since most future devices can be expected to have NVFS.

The pain of it all is that it is necessary to close records after opening them. To make it easier, I wrote code to keep track of opened records, allow nesting of openings/closings, and to close any opened records when a database is closed. Please bang hard on the new code, to make sure it all works on your OS 3.x-4.x devices, pre-NVFS OS 5 devices, and NVFS OS 5 devices. You might want to #define DEBUG_RECORDS in ramfile.c to get more stringent error checking (over/underopened records will then cause crashes, rather than being swept under the carpet).

The new code should be almost as fast as the old, though I could be wrong. I stuck to using DmQueryRecord() in two speed-sensitive places, hopefully in a way that won't cause NVFS trouble (it does work on my T5).

Thank you for your testing!
Alex
_______________________________________________
plucker-dev mailing list
plucker-dev@rubberchicken.org
http://lists.rubberchicken.org/mailman/listinfo/plucker-dev

Reply via email to