Outliner: Add missing sanity checks for RNA tree-elements

Forgot to add these in 9bce134e56. Also tweaked assert to print a
message that was previously communicated via a comment only.
This commit is contained in:
Julian Eisel 2022-01-26 12:56:03 +01:00
parent 57dfec79f4
commit d74c2b5c1f
2 changed files with 12 additions and 3 deletions

View File

@ -925,9 +925,11 @@ TreeElement *outliner_add_element(SpaceOutliner *space_outliner,
TSE_NLA,
TSE_NLA_ACTION,
TSE_NLA_TRACK,
TSE_GP_LAYER)) {
/* Should already use new AbstractTreeElement design. */
BLI_assert(0);
TSE_GP_LAYER,
TSE_RNA_STRUCT,
TSE_RNA_PROPERTY,
TSE_RNA_ARRAY_ELEM)) {
BLI_assert_msg(false, "Element type should already use new AbstractTreeElement design");
}
else if (type == TSE_SEQUENCE) {
Sequence *seq = (Sequence *)idv;

View File

@ -79,6 +79,8 @@ bool TreeElementRNACommon::expandPoll(const SpaceOutliner &) const
TreeElementRNAStruct::TreeElementRNAStruct(TreeElement &legacy_te, PointerRNA &rna_ptr)
: TreeElementRNACommon(legacy_te, rna_ptr)
{
BLI_assert(legacy_te.store_elem->type == TSE_RNA_STRUCT);
if (!isRNAValid()) {
return;
}
@ -142,6 +144,8 @@ TreeElementRNAProperty::TreeElementRNAProperty(TreeElement &legacy_te,
const int index)
: TreeElementRNACommon(legacy_te, rna_ptr)
{
BLI_assert(legacy_te.store_elem->type == TSE_RNA_PROPERTY);
if (!isRNAValid()) {
return;
}
@ -229,6 +233,9 @@ TreeElementRNAArrayElement::TreeElementRNAArrayElement(TreeElement &legacy_te,
const int index)
: TreeElementRNACommon(legacy_te, rna_ptr)
{
BLI_assert(legacy_te.store_elem->type == TSE_RNA_ARRAY_ELEM);
BLI_assert(legacy_te.parent && (legacy_te.parent->store_elem->type == TSE_RNA_PROPERTY));
PropertyRNA *prop = reinterpret_cast<PropertyRNA *>(legacy_te_.parent->directdata);
legacy_te_.directdata = prop;
legacy_te_.index = index;