Commit: be976500fe6d8d7f6df15298ea806caaa42a0009
Author: Dalai Felinto
Date:   Thu Nov 24 16:26:48 2016 +0100
Branches: layers
https://developer.blender.org/rBbe976500fe6d8d7f6df15298ea806caaa42a0009

Fix reading collection objects and small refactors here and there

===================================================================

M       source/blender/blenloader/intern/readfile.c
M       source/blender/blenloader/intern/writefile.c

===================================================================

diff --git a/source/blender/blenloader/intern/readfile.c 
b/source/blender/blenloader/intern/readfile.c
index 0deab3d..9f87925 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -5501,10 +5501,14 @@ static void direct_link_view_settings(FileData *fd, 
ColorManagedViewSettings *vi
 static void direct_link_layer_collections(FileData *fd , ListBase *lb)
 {
        link_list(fd, lb);
-
        for (LayerCollection *lc = lb->first; lc; lc = lc->next) {
-               link_list(fd, &(lc->elements));
                link_list(fd, &(lc->overrides));
+               link_list(fd, &lc->elements);
+
+               for (LinkData *ld = lc->elements.first; ld; ld = ld->next) {
+                       ld->data = newdataadr(fd, ld->data);
+               }
+
                direct_link_layer_collections(fd, &lc->collections);
        }
 }
@@ -5751,11 +5755,10 @@ static void direct_link_scene(FileData *fd, Scene *sce)
        direct_link_curvemapping(fd, &sce->r.mblur_shutter_curve);
 
        link_list(fd, &(sce->layers));
-
        for (sl = sce->layers.first; sl; sl = sl->next) {
                sl->obedit = NULL;
-               link_list(fd, &(sl->base));
                sl->basact = newdataadr(fd, sl->basact);
+               link_list(fd, &(sl->base));
 
                /* recursively direct link the layer collections */
                direct_link_layer_collections(fd, &(sl->collections));
diff --git a/source/blender/blenloader/intern/writefile.c 
b/source/blender/blenloader/intern/writefile.c
index 51fa3d9..c22600e 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -2404,17 +2404,10 @@ static void write_paint(WriteData *wd, Paint *p)
 /* recursively write the layer collections structs */
 static void write_layer_collections(WriteData *wd, ListBase *lb)
 {
+       writelist(wd, DATA, LayerCollection, lb);
        for (LayerCollection *lc = lb->first; lc; lc = lc->next) {
-               writestruct(wd, DATA, LayerCollection, 1, lc);
-
-               for (LinkData *link = lc->elements.first; link; link = 
link->next) {
-                       writestruct(wd, DATA, LinkData, 1, link);
-               }
-
-               for (CollectionOverride *ov = lc->overrides.first; ov; ov = 
ov->next) {
-                       writestruct(wd, DATA, CollectionOverride, 1, ov);
-               }
-
+               writelist(wd, DATA, CollectionOverride, &lc->overrides);
+               writelist(wd, DATA, LinkData, &lc->elements);
                write_layer_collections(wd, &(lc->collections));
        }
 }
@@ -2605,14 +2598,9 @@ static void write_scenes(WriteData *wd, ListBase 
*scebase)
                }
 
                /* writing scene layers to the blend file */
+               writelist(wd, DATA, SceneLayer, &sce->layers);
                for (sl = sce->layers.first; sl; sl = sl->next) {
-                       writestruct(wd, DATA, SceneLayer, 1, sl);
-
-                       base = sl->base.first;
-                       while (base) {
-                               writestruct(wd, DATA, Base, 1, base);
-                               base = base->next;
-                       }
+                       writelist(wd, DATA, Base, &sl->base);
 
                        /* recursively write the layer collections structs */
                        write_layer_collections(wd, &sl->collections);

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to