by geezerbuttz » Sat Feb 14, 2026 8:54 am
well it took a couple of day , but its done.
I had a good look at the ifo reading code , ( there are two different types ) and consolidated them.
All different methods feed down to one concrete function that does all the heavy lifting.
I initially wrote a deep copy routine to give us unique backups of the cache data.
This proved problematic , and hard to maintain , esp as I re calculated the IFO data to correct for incorrect sizes on the file table.
This means the initial read , would have to be updated to correct it.( a complete rebuild )
I decided that the best way to do this is to cache raw data from the disk , provide functions to enable us to destroy and update the buffer if the ifo size needs to be updated.
when we need an ifo , we first check if we have a buffer in the cache, then compare the sector sizes ( if its == or the range fits inside the current buffer , we return the cached data , other wise , invalidate the cache , and reload and update the cache.
All in all , it seems to work well , and dramatically reduces disk reads,
I will take a couple of days to run it thoroughly to test it for bugs.....
The ifo cache is only destroyed on disk removal from the app stack.
G
When poor people support the rich , the Devil laughs......