Bug 1736243 Comment 17 Edit History

Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.

So, the short version of comment 16 is:
 - We're looping over some pointers and calling OnNonDOMMutationRenderingChange on each one.
 - In one of these iterations, the `OnNonDOMMutationRenderingChange` call causes frame-deletion which deletes one of the objects that we're going to iterate over in a later iteration of the loop.
 - So when we get to the iteration for that object, we're hosed.

I'm not yet sure what the right fix here is. Assuming that each individual operation is essentially correct here (i.e. we're correct to do frame deletion, etc), we could potentially work around this by changing how we iterate somehow so that the deleted `SVGTextPathObserver` is actually successful at unregistering itself. (We could do this by e.g. removing observers from mObservers one at a time as we process them; or by using some sort of weak-pointer setup instead of raw pointers, or maybe something else.)
So, the short version of comment 16 is:
 - We're looping over some pointers and calling OnNonDOMMutationRenderingChange on each one.
 - In one of these iterations, the `OnNonDOMMutationRenderingChange` call causes frame-deletion which deletes one of the objects that we're going to iterate over in a later iteration of the loop.
 - So when we get to the iteration for that object, we're hosed.

I'm not yet sure what the right fix here is. Assuming that each individual operation is essentially correct here (i.e. our line-breaking is correct, we're correct to do frame deletion, etc), we could potentially work around this by changing how we iterate somehow so that the deleted `SVGTextPathObserver` is actually successful at unregistering itself. (We could do this by e.g. removing observers from mObservers one at a time as we process them; or by using some sort of weak-pointer setup instead of raw pointers, or maybe something else.)

Back to Bug 1736243 Comment 17