I’ve been working with Blog 7.1 under Delphi 7.0 and it isn’t too bad – the compile time is still a bit too long to suit my tastes but other than that, I like Delphi 7.0 quite a bit. I’ve also been looking at it’s RAD web development stuff and it looks really interesting – I intend to do something with that soon. But in the mean time, I think Blog 7.1 is almost ready for release. I would have released it today except for the fact that I got a chance to actually test whether a particular bug that I *thought* would be fixed by this release, is really fixed. The bug? Blog slowing down at startup to several minutes (I really didn’t know it took that long till a Blog user told me so a few days ago) after a few weeks or months. I’d noticed no difference myself but had received complaints from several users.
I suspected that this might have something to do with the custom code snippet feature but was unable to test for sure since I didn’t have the problem myself. However, Dominion (the user who said that his Blog installation took over five minutes to start) is willing to do some testing for me and so I want to check if he still has the problem with the latest build of Blog. If he doesn’t, I can be sure that the bug is gone but if not, then I can try to isolate the problem before I do the next release. I believe that the bug has to do with custom snippet buttons on the toolbar and only if you have any custom buttons on the toolbar – I don’t. That might be why I don’t have the problem. I guess I could simply have added a few custom snippet buttons and then waited for a couple of weeks to see if Blog slows down but I didn’t even think that far till now :p
What I’ve noticed is this. The custom snippet buttons on the toolbar are dynamically created at start up since the custom snippet definitions themselves are loaded from a database table. The toolbar definition (such as what buttons are on the toolbar and where they are) is saved when Blog is closed but since the snippet buttons are dynamically created, the next time Blog is started, those button definitions are invalid and I have to recreate them dynamically. I simply go through all the button definitions on the toolbar and find empty definitions matching custom snippets and then recreate them. However, I’d noticed that the number of empty toolbar button definitions increased each time I ran Blog. I discovered later that this was because I was supposed to delete the buttons instead of free them (I thought freeing them automatically removed them …) and so, the code in Blog 7.1 deletes the empty buttons. However, since the older versions of Blog does not, I think it might be that over time that the number of empty button definitions grows enormously and Blog keeps on looping through it all till it finally creates the toolbar stuff and then starts up. However, this is just a guess – I’ll probably know for sure once Dominion tries out the new build on his machine.