Backport two fixes for container #20028
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
[BUGFIX LTS] remove bad
setFactoryFor
call (0a1b4e4)This call attempted to avoid setting the
INIT_FACTORY
on items which did not need it (specifically, it avoided setting it on things which were not instantiable), but ultimately failed to do. It was ultimately setting the newFactoryManager
instance as theINIT_FACTORY
value on each instantiable object, which includes classes and not just class instances, since objects are only treated as non-instantiable when they explicitly specifyinstantiate: false
.The net was a memory leak: the routing service class ended up with an
INIT_FACTORY
pointing to aFactoryManager
instance which in turn always had acontainer
on it, which meant that there was a cycle (the container also referenced the service) and thus a leak. This affects both tests and FastBoot, where we construct new instances of the service whenever we call thevisit
API.[BUGFIX beta] remove unneeded
setFactoryFor(this, this)
()Identified as part of the work on [BUGFIX LTS] remove bad
setFactoryFor
call #20025, this particularsetFactoryFor
was needed at one time but is now defunct. Remove it.