| 147 | } |
| 148 | |
| 149 | void Context::onAttributeChange(RawViewNodeId viewNodeId, |
| 150 | const StringBox& attributeName, |
| 151 | const Value& attributeValue, |
| 152 | bool shouldNotifySync) { |
| 153 | Ref<ContextHandler> handler; |
| 154 | auto notifySync = false; |
| 155 | |
| 156 | { |
| 157 | std::lock_guard<Mutex> guard(_mutex); |
| 158 | if (_handler == nullptr) { |
| 159 | return; |
| 160 | } |
| 161 | handler = _handler; |
| 162 | notifySync = _updateHandlerSynchronously; |
| 163 | } |
| 164 | |
| 165 | handler->onAttributeChange( |
| 166 | strongSmallRef(this), viewNodeId, attributeName, attributeValue, shouldNotifySync || notifySync); |
| 167 | } |
| 168 | |
| 169 | void Context::onRuntimeIssue(const StringBox& message, bool isError) { |
| 170 | Ref<ContextHandler> handler; |
no test coverage detected