From: Stephen W. <st...@ke...> - 2001-11-03 07:15:57
|
In that finely crafted message <200...@ev...> Thomas Leonard <ta...@ec...> wrote: > For rereading the types (type_reread), I don't understand what old_hash is > for. You copy extension_hash into it, point extension_hash at a new table > and then free old_hash, apparently without using it. I was erring on the side of caution and keeping the old database around so I could restore it if the load of the new one failed. Then I realised I couldn't tell if it had failed or not and forgot to remove that code. > > Since the mime type structures aren't ref-counted, they can never be > freed. Oops, I assumed that destroying extension_hash dealt with that. > Therefore, I think we need a global hash of MIME names to > structures to avoid a memory leak. If a MIME type is later undefined, it > will be removed from extension_hash (so it can never be used for new > files) but should remain in the type name hash so it can be recovered if > it is redefined later. > > This would also improve the current code, which allocates two structures > if the same type is defined twice. -- Stephen Watson <URL:http://www.kerofin.demon.co.uk/> Glorantha & RISC OS "Then, crushing what he chanced to mould in play, The idiot Chaos blew Earth's dust away" |