Fixed various problems described in bug 1030473. Optimized performance and style following suggestions reported by cppcheck:
1. Reduced the scope of various variables.
2. Used prefix ++ operators for non-primitive types, because those can be more efficient than post-increment. Post-increment usually keeps a copy of the previous value, adds extra code and is slower.. Fixes: https://bugs.launchpad.net/bugs/1030473. Approved by Daniel van Vugt, Sam Spilsbury.