Fix issue 723 -- minor optimizations to TypeConverterBindingProcessor.
Description in the bug describes this best:
TypeConverterBindingProcessor has two responsibilities: 1) prepare built-in type
converters for primitives, enums, classes, etc. and 2) process TypeConverter
bindings and register them with the containing injector.
The first responsibility only needs the injector reference, it doesn't need
access to the processor's Errors cache. However, the current implementation
runs in the context of the processor and creates a number of anonymous classes,
and they all contain an implicit reference (this$0) back to the processor. This
can lead to some Errors instances being kept alive longer than necessary by
these anonymous classes, but not a large number.
Changing the prepareBuiltInConverters implementation over to use static methods
that pass the injector as an argument fixes this problem by removing the
implicit reference to the processor, since the anonymous classes are now
created from a static context.
Patch by Stuart McCulloch. Thanks Stuart!
Created by MOE: http://code.google.com/p/moe-java
2 files changed