diff options
author | Lukas Toenne <lukas.toenne@googlemail.com> | 2013-10-18 00:18:48 +0400 |
---|---|---|
committer | Lukas Toenne <lukas.toenne@googlemail.com> | 2013-10-18 00:18:48 +0400 |
commit | 2871b0d7df5804e32e9ac4064ab2f29994b69b2d (patch) | |
tree | 117854d991e02de5cbff55a8ec9804a91dc6452a /source | |
parent | 4230b8f9c4cc0b71bb1d361d16c5dbe82e24ee9c (diff) |
Fix #37110, After deletion of large scene, file still huge.
Objects were not being freed when unlinked from all scenes, due to user count increments on the ParticleSystem->parent pointers. These were referencing the objects themselves, creating a user count of 1
and preventing free. Object pointers should not usually do user counting, except in some cases like scenes and groups (thanks to Brecht for clarifying this).
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenloader/intern/readfile.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 2cc5aa33ab6..e6804725587 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -3806,7 +3806,7 @@ static void lib_link_particlesystems(FileData *fd, Object *ob, ID *id, ListBase for (; pt; pt=pt->next) pt->ob=newlibadr(fd, id->lib, pt->ob); - psys->parent = newlibadr_us(fd, id->lib, psys->parent); + psys->parent = newlibadr(fd, id->lib, psys->parent); psys->target_ob = newlibadr(fd, id->lib, psys->target_ob); if (psys->clmd) { |