Setting objects to null would be optimized out. Clearing lists probably
would not be optimized out. There is no need to explicitly clear a list
of items or setting objects to null in C#. We must let the Garbage
Collector have its way.
Made the lock for the codec readonly. This makes it impossible for a
spot (excluding constructors) from touching the lock. Tampering with the
lock means that, if something acquires the lock and enters critical
code, the lock can be changed and the critical code's thread safety can
be violated.