cppcheck

I found a wonderful new (to me) tool to help with development efforts. It is called cppcheck and it does a pretty good job of spotting uninitialized variables, possible memory leaks, and things being passed by value when they can be passed by reference. I also noticed it spots functions that can be const but are not marked as such. I'm sure it can do more than this but these are some of the mistakes It caught in my code. I don't feel too bad though because the only memory leaks if found were actually reference counted objects that were part of the Irrlicht engine. So that means it's detection isn't perfect but in all fairness an actual programmer looking at the code without knowledge of the API wouldn't know that. But anyway they were GUI elements that get cleaned up when I clear the GUI. I did however forget to set the pointers equal to null which of course could cause problems if those pointers are accessed and checked for null. So the short version of the story is that I think this tool will do wonders for improving the quality of the codebase, I am human and I do make mistakes.

Another untapped resources is nightly builds of codeblocks. I have been using 8.02 for all of the development thus far but the latest nightly build as of today(technically yesterday) has some nice features including a plugin to use cppcheck which I'm making full use of right now. I'm going to be stuck with 8.02 on my other target platforms unless I build from source but that shouldn't be a big issue because I do must of my development work in Windows. And as far as I know there aren't any project or workspace file incompatibilities.

On to actual project news I'm planning on releasing 0.8.0 soon the main thing that has been holding me back is bugs. I fixed all of them except for the bug when users switch maps while moving and the right-click death. I'm hoping with the help of the above mentioned tools I'll be able to fix right-click death once and for all. It should be noted right-click death has never happened on Linux nor did it happen when I was using MinGW but in all fairness in the latter case there wasn't as much going on.

Comments

Popular posts from this blog

VK9 - Milestone8 Completed

VK9 - Milestone13 Completed

VK9 - Milestone16 Completed