diff options
author | Julian Eisel <julian@blender.org> | 2022-05-27 17:48:09 +0300 |
---|---|---|
committer | Julian Eisel <julian@blender.org> | 2022-05-27 18:03:25 +0300 |
commit | b45f410b3157cb13e7ff4d88dcf5557d2621b9c3 (patch) | |
tree | 825f3e521d2a9db03f9ccbc0a84457caa08374ef /source/blender | |
parent | 74cf22c42c81341fd7d4ce0863a9dafe26bacd2f (diff) |
Fix T97790: Crash in Outliner "Blender File" mode with old files
IPO data-block types are deprecated since 2.5. Don't show them in the
Outliner at all.
Differential Revision: https://developer.blender.org/D15049
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/editors/space_outliner/tree/tree_display_libraries.cc | 5 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_ID.h | 2 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_ID_enums.h | 2 |
3 files changed, 9 insertions, 0 deletions
diff --git a/source/blender/editors/space_outliner/tree/tree_display_libraries.cc b/source/blender/editors/space_outliner/tree/tree_display_libraries.cc index 476bbdb63ae..79eec632c90 100644 --- a/source/blender/editors/space_outliner/tree/tree_display_libraries.cc +++ b/source/blender/editors/space_outliner/tree/tree_display_libraries.cc @@ -116,6 +116,11 @@ TreeElement *TreeDisplayLibraries::add_library_contents(Main &mainvar, ListBase ID *id = static_cast<ID *>(lbarray[a]->first); const bool is_library = (GS(id->name) == ID_LI) && (lib != nullptr); + /* Don't show deprecated types. */ + if (ID_TYPE_IS_DEPRECATED(GS(id->name))) { + continue; + } + /* check if there's data in current lib */ for (ID *id_iter : List<ID>(lbarray[a])) { if (id_iter->lib == lib) { diff --git a/source/blender/makesdna/DNA_ID.h b/source/blender/makesdna/DNA_ID.h index 17d783d3ebf..1989118bef9 100644 --- a/source/blender/makesdna/DNA_ID.h +++ b/source/blender/makesdna/DNA_ID.h @@ -597,6 +597,8 @@ typedef struct PreviewImage { * Keep in sync with #BKE_id_eval_properties_copy. */ #define ID_TYPE_SUPPORTS_PARAMS_WITHOUT_COW(id_type) ELEM(id_type, ID_ME) +#define ID_TYPE_IS_DEPRECATED(id_type) ELEM(id_type, ID_IP) + #ifdef GS # undef GS #endif diff --git a/source/blender/makesdna/DNA_ID_enums.h b/source/blender/makesdna/DNA_ID_enums.h index b0ca13615b8..5999af8bf5c 100644 --- a/source/blender/makesdna/DNA_ID_enums.h +++ b/source/blender/makesdna/DNA_ID_enums.h @@ -38,6 +38,8 @@ enum eIconSizes { * * Written to #BHead.code (for file IO) * and the first 2 bytes of #ID.name (for runtime checks, see #GS macro). + * + * Update #ID_TYPE_IS_DEPRECATED() when deprecating types. */ typedef enum ID_Type { ID_SCE = MAKE_ID2('S', 'C'), /* Scene */ |