Merge pull request #15505 from SamGondelman/stageCrash

Case 22419: Try to fix transition crash
This commit is contained in:
Sabrina Shanman 2019-05-03 14:38:42 -07:00 committed by GitHub
commit 3c5bf63c55
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -392,6 +392,10 @@ void Scene::updateItems(const Transaction::Updates& transactions) {
void Scene::transitionItems(const Transaction::TransitionAdds& transactions) {
auto transitionStage = getStage<TransitionStage>(TransitionStage::getName());
if (!transitionStage) {
return;
}
for (auto& add : transactions) {
auto itemId = std::get<0>(add);
// Access the true item
@ -433,6 +437,10 @@ void Scene::reApplyTransitions(const Transaction::TransitionReApplies& transacti
void Scene::queryTransitionItems(const Transaction::TransitionQueries& transactions) {
auto transitionStage = getStage<TransitionStage>(TransitionStage::getName());
if (!transitionStage) {
return;
}
for (auto& query : transactions) {
auto itemId = std::get<0>(query);
// Access the true item
@ -553,11 +561,14 @@ void Scene::setItemTransition(ItemID itemId, Index transitionId) {
}
void Scene::resetItemTransition(ItemID itemId) {
auto transitionStage = getStage<TransitionStage>(TransitionStage::getName());
if (!transitionStage) {
return;
}
auto& item = _items[itemId];
TransitionStage::Index transitionId = item.getTransitionId();
if (!render::TransitionStage::isIndexInvalid(transitionId)) {
auto transitionStage = getStage<TransitionStage>(TransitionStage::getName());
auto finishedOperators = _transitionFinishedOperatorMap[transitionId];
for (auto finishedOperator : finishedOperators) {
if (finishedOperator) {