Files
Swiftgram/Source/Private
Garrett Moon 6b54d052e9 Fix non layout (#309)
* Lock released between add to pend controller and modifying pend state

The existing design is pretty fraught with error. We should probably
rethink this but in the meantime, this fixes a bug where calling
setNeedsLayout can start failing for nodes.

Essentially the method ASDisplayNodeShouldApplyBridgedWriteToView has
a side effect of registering a node to apply it's pending state *if*
it doesn't currently need the pending state applied. My guess is this
was to avoid continually registering the node and this behavior actually
helped expose this bug.

The bug: after the node is registered for flushing it's state, several
code paths released the lock before applying that state to the pending
state object. Before it could re-obtain the lock to apply it to the pending
state, the pending state controller flushed it on the main thread.

On subsequent calls to setNeedsLayout, the pending state had pending state
already (from previous calls which missed the flush) and thus wasn't
registered for future flushing.

* Add changelog
2017-05-26 14:59:02 -07:00
..
2017-04-24 16:59:57 -07:00
2017-04-24 16:59:57 -07:00
2017-04-24 16:59:57 -07:00
2017-04-24 16:59:57 -07:00
2017-04-24 16:59:57 -07:00
2017-04-24 16:59:57 -07:00
2017-04-24 16:59:57 -07:00
2017-04-24 16:59:57 -07:00
2017-04-29 15:23:00 -07:00
2017-04-24 16:59:57 -07:00
2017-04-24 16:59:57 -07:00
2017-04-24 16:59:57 -07:00
2017-04-24 16:59:57 -07:00
2017-04-24 16:59:57 -07:00
2017-04-24 16:59:57 -07:00
2017-04-24 16:59:57 -07:00
2017-04-24 16:59:57 -07:00
2017-04-24 16:59:57 -07:00
2017-04-24 16:59:57 -07:00
2017-04-24 16:59:57 -07:00
2017-04-24 16:59:57 -07:00
2017-04-24 16:59:57 -07:00
2017-04-24 16:59:57 -07:00
2017-04-24 16:59:57 -07:00
2017-04-24 16:59:57 -07:00
2017-04-24 16:59:57 -07:00
2017-04-24 16:59:57 -07:00
2017-04-24 16:59:57 -07:00
2017-04-24 16:59:57 -07:00
2017-04-24 16:59:57 -07:00
2017-04-24 16:59:57 -07:00
2017-04-24 16:59:57 -07:00