fix for crash on load if the file was saved in editmesh,
authorCampbell Barton <ideasman42@gmail.com>
Mon, 7 Oct 2013 16:48:26 +0000 (16:48 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Mon, 7 Oct 2013 16:48:26 +0000 (16:48 +0000)
BKE_mesh_uv_cdlayer_rename_index was checking editmesh pointer before it was NULL'd by direct_link_mesh.

CMakeLists.txt
source/blender/blenloader/intern/readfile.c

index 831906e958d25f2a1ce3279d108a5e7ccbbcb198..8863c03bff4372b9a06edeaba41d9ac30cead3a7 100644 (file)
@@ -372,7 +372,7 @@ if(APPLE)
        endif()
        
        if(NOT CMAKE_OSX_DEPLOYMENT_TARGET)
-                       set(CMAKE_OSX_DEPLOYMENT_TARGET "10.5" CACHE STRING "" FORCE) # 10.5 is our min. target, if you use higher sdk, weak linking happens
+               set(CMAKE_OSX_DEPLOYMENT_TARGET "10.5" CACHE STRING "" FORCE) # 10.5 is our min. target, if you use higher sdk, weak linking happens
        endif()
        
        if(NOT ${CMAKE_GENERATOR} MATCHES "Xcode")
index fad0b709baf5789553e5053cab776fef38e32d8b..b673246a38f2b09dcfb39c5cb59e30ebd8ddbc6e 100644 (file)
@@ -4164,12 +4164,6 @@ static void direct_link_mesh(FileData *fd, Mesh *mesh)
        direct_link_customdata(fd, &mesh->fdata, mesh->totface);
        direct_link_customdata(fd, &mesh->ldata, mesh->totloop);
        direct_link_customdata(fd, &mesh->pdata, mesh->totpoly);
-       
-       if (mesh->mloopuv || mesh->mtpoly) {
-               /* for now we have to ensure texpoly and mloopuv layers are aligned
-                * in the future we may allow non-aligned layers */
-               BKE_mesh_cd_validate(mesh);
-       }
 
        mesh->bb = NULL;
        mesh->edit_btmesh = NULL;
@@ -4179,6 +4173,12 @@ static void direct_link_mesh(FileData *fd, Mesh *mesh)
                mesh->totselect = 0;
        }
 
+       if (mesh->mloopuv || mesh->mtpoly) {
+               /* for now we have to ensure texpoly and mloopuv layers are aligned
+                * in the future we may allow non-aligned layers */
+               BKE_mesh_cd_validate(mesh);
+       }
+
        /* Multires data */
        mesh->mr= newdataadr(fd, mesh->mr);
        if (mesh->mr) {