diff options
author | Ton Roosendaal <ton@blender.org> | 2012-10-24 17:24:34 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2012-10-24 17:24:34 +0400 |
commit | f746f3ea0917033ee05c0282d177a466948927a6 (patch) | |
tree | 913e489e0752ba7ff0d3b31437ce0ab34576576d /source/blender/blenkernel/intern/object.c | |
parent | 2af81d4a5ec9e7898ce92584a220074cc4549130 (diff) |
Bugfix #32496
You don't believe it, this bug traces back to 2002. Went by unreported for a decade.
If you link in an object, delete it, and relink again its materials are lost!
Easy fix, annoying error. :)
Diffstat (limited to 'source/blender/blenkernel/intern/object.c')
-rw-r--r-- | source/blender/blenkernel/intern/object.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index d50c82ca589..431f2c04f7d 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -300,11 +300,11 @@ void BKE_object_free(Object *ob) BKE_object_free_display(ob); - /* disconnect specific data */ + /* disconnect specific data, but not for lib data (might be indirect data, can get relinked) */ if (ob->data) { ID *id = ob->data; id->us--; - if (id->us == 0) { + if (id->us == 0 && id->lib==NULL) { switch (ob->type) { case OB_MESH: BKE_mesh_unlink((Mesh *)id); |