Code cleanup
Jump to navigation
Jump to search
The purpose of this page is to provide a todo-list or check-list for anyone that wants to help clean up the Flightgear (FG) code. In addition to this list, you also want to try running FG in Valgrind, a very powerful memory debugger and profiler. http://freshmeat.net/projects/valgrind/
Feel free to add additional items to this page
Thanks -- Cameron Moore
Major Task List
- Move code out of fgMainLoop() and into separate functions or source files.
- Replace system() calls in simgear/io/sg_binobj.cxx to `mkdir`
- Replace system() call in simgear/io/sg_binobj.cxx to `gzip`
- Allow aircraft to be reliably changed at runtime, without requiring a restart of FlightGear
- Implement scenery support for dynamic LOD configuration at runtime
- Optimize the 3D panel code and optionally support display list usage
- Add OpenGL bindings to the scripting language Nasal to support scripted creation of instruments like the HUD
Persistent Checklist
Carelessness
- Properly allocate and deallocate memory using malloc/new/new[{][}] and free/delete/delete[{][}].
Valgrind is helpful when looking for these.
Compatibility
- Use the SG_LOG() facilities instead of cout and printf().
- Use the SG_USING_STD() facilities instead of explicitly using std::function.
- Use the STL_* variables defined in simgear/compiler.h when including STL headers.
- When including header files, only use double-quotes when the header is in the same directory.
Performance
- When performance is crucial, consider using the "fastmath.hxx" headers.
Security
- Use C-string functions with fixed write buffers whenever possible to avoid buffer overflows.
For example, use snprintf() instead of sprintf() and strncpy() instead of strcpy().