Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/blender/blenkernel/intern/group.c1
-rw-r--r--source/blender/blenkernel/intern/library_query.c2
-rw-r--r--source/blender/blenloader/intern/readfile.c13
3 files changed, 9 insertions, 7 deletions
diff --git a/source/blender/blenkernel/intern/group.c b/source/blender/blenkernel/intern/group.c
index 150226523f2..96cf0fe574a 100644
--- a/source/blender/blenkernel/intern/group.c
+++ b/source/blender/blenkernel/intern/group.c
@@ -182,6 +182,7 @@ static bool group_object_add_internal(Group *group, Object *ob)
BLI_addtail(&group->gobject, go);
go->ob = ob;
+ id_us_ensure_real(&go->ob->id);
return true;
}
diff --git a/source/blender/blenkernel/intern/library_query.c b/source/blender/blenkernel/intern/library_query.c
index a800b3d8834..002007e2a58 100644
--- a/source/blender/blenkernel/intern/library_query.c
+++ b/source/blender/blenkernel/intern/library_query.c
@@ -514,7 +514,7 @@ void BKE_library_foreach_ID_link(ID *id, LibraryIDLinkCallback callback, void *u
Group *group = (Group *) id;
GroupObject *gob;
for (gob = group->gobject.first; gob; gob = gob->next) {
- CALLBACK_INVOKE(gob->ob, IDWALK_NOP);
+ CALLBACK_INVOKE(gob->ob, IDWALK_USER_ONE);
}
break;
}
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 2060894dc30..6c6af2d1fc6 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -7268,25 +7268,26 @@ static void lib_link_group(FileData *fd, Main *main)
{
Group *group;
GroupObject *go;
- int add_us;
+ bool add_us;
for (group = main->group.first; group; group = group->id.next) {
if (group->id.flag & LIB_NEED_LINK) {
group->id.flag -= LIB_NEED_LINK;
- add_us = 0;
+ add_us = false;
for (go = group->gobject.first; go; go = go->next) {
go->ob= newlibadr(fd, group->id.lib, go->ob);
if (go->ob) {
go->ob->flag |= OB_FROMGROUP;
/* if group has an object, it increments user... */
- add_us = 1;
- if (go->ob->id.us == 0)
- go->ob->id.us = 1;
+ add_us = true;
+ id_us_ensure_real(&go->ob->id);
}
}
- if (add_us) group->id.us++;
+ if (add_us) {
+ id_us_ensure_real(&group->id);
+ }
BKE_group_object_unlink(group, NULL, NULL, NULL); /* removes NULL entries */
}
}