Code cleanup: Difference between revisions
Jump to navigation
Jump to search
FlightZilla (talk | contribs) m (Janitors moved to Code Cleanup: see discussion) |
(throw out obsolete stuff) |
||
Line 11: | Line 11: | ||
* Replace system() call in simgear/io/sg_binobj.cxx to `gzip` | * 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 | * Allow aircraft to be reliably changed at runtime, without requiring a restart of FlightGear | ||
* Implement scenery support for dynamic LOD configuration at runtime | * Implement scenery support for dynamic LOD configuration at runtime | ||
* Optimize the 3D panel code and optionally support display list usage | * 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 | * Add OpenGL bindings to the scripting language Nasal to support scripted creation of instruments like the HUD | ||
== Persistent Checklist == | == Persistent Checklist == |
Revision as of 12:47, 16 July 2006
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().