Last two SaveState optimizations (I promise!) - Use C-arrays for optimal lookups, and swap buffers instead of copying data (this is actually enabled by using C-arrays)