Fix T65448 - Outliner - Show all inside in disabled collection crash

This commit is contained in:
Dalai Felinto
2019-06-03 13:10:35 -03:00
parent de0cae29cf
commit c39a8657be

View File

@@ -1073,9 +1073,11 @@ bool BKE_layer_collection_isolate(Scene *scene,
static void layer_collection_bases_show_recursive(ViewLayer *view_layer, LayerCollection *lc)
{
for (CollectionObject *cob = lc->collection->gobject.first; cob; cob = cob->next) {
Base *base = BKE_view_layer_base_find(view_layer, cob->ob);
base->flag &= ~BASE_HIDDEN;
if ((lc->flag & LAYER_COLLECTION_EXCLUDE) == 0) {
for (CollectionObject *cob = lc->collection->gobject.first; cob; cob = cob->next) {
Base *base = BKE_view_layer_base_find(view_layer, cob->ob);
base->flag &= ~BASE_HIDDEN;
}
}
for (LayerCollection *lc_iter = lc->layer_collections.first; lc_iter; lc_iter = lc_iter->next) {
layer_collection_bases_show_recursive(view_layer, lc_iter);
@@ -1084,9 +1086,11 @@ static void layer_collection_bases_show_recursive(ViewLayer *view_layer, LayerCo
static void layer_collection_bases_hide_recursive(ViewLayer *view_layer, LayerCollection *lc)
{
for (CollectionObject *cob = lc->collection->gobject.first; cob; cob = cob->next) {
Base *base = BKE_view_layer_base_find(view_layer, cob->ob);
base->flag |= BASE_HIDDEN;
if ((lc->flag & LAYER_COLLECTION_EXCLUDE) == 0) {
for (CollectionObject *cob = lc->collection->gobject.first; cob; cob = cob->next) {
Base *base = BKE_view_layer_base_find(view_layer, cob->ob);
base->flag |= BASE_HIDDEN;
}
}
for (LayerCollection *lc_iter = lc->layer_collections.first; lc_iter; lc_iter = lc_iter->next) {
layer_collection_bases_hide_recursive(view_layer, lc_iter);