Commit: 014cdb2f42ccdb3915ed260c7bf3509ad26de6b6
Author: Julian Eisel
Date: Mon Jun 6 00:25:45 2016 +0200
Branches: soc-2016-layer_manager
https://developer.blender.org/rB014cdb2f42ccdb3915ed260c7bf3509ad26de6b6
Fix undo and file reading after deleting layer with content
===================================================================
M source/blender/blenkernel/intern/object_layer.c
M source/blender/blenloader/intern/readfile.c
===================================================================
diff --git a/source/blender/blenkernel/intern/object_layer.c
b/source/blender/blenkernel/intern/object_layer.c
index c2997e2..7458aa8 100644
--- a/source/blender/blenkernel/intern/object_layer.c
+++ b/source/blender/blenkernel/intern/object_layer.c
@@ -36,7 +36,10 @@
static void objectlayer_free(LayerTreeItem *litem)
{
LayerTypeObject *oblayer = (LayerTypeObject *)litem;
- BLI_ghash_free(oblayer->basehash, NULL, NULL);
+ if (oblayer->basehash) {
+ BLI_ghash_free(oblayer->basehash, NULL, NULL);
+ oblayer->basehash = NULL;
+ }
}
LayerTreeItem *BKE_objectlayer_add(
diff --git a/source/blender/blenloader/intern/readfile.c
b/source/blender/blenloader/intern/readfile.c
index 7e7d8a2..cc1d9ec 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -5811,6 +5811,10 @@ static void direct_link_layeritems(FileData *fd,
ListBase *layeritems)
link_list(fd, layeritems);
for (LayerTreeItem *litem = layeritems->first; litem; litem =
litem->next) {
litem->parent = newdataadr(fd, litem->parent);
+ if (litem->type == LAYER_ITEMTYPE_LAYER) {
+ LayerTypeObject *oblayer = (LayerTypeObject *)litem;
+ oblayer->basehash = newdataadr(fd, oblayer->basehash);
+ }
direct_link_layeritems(fd, &litem->childs);
}
}
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs