Revision: 20170
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20170
Author:   campbellbarton
Date:     2009-05-12 17:28:07 +0200 (Tue, 12 May 2009)

Log Message:
-----------
[#13726] Segfault with (Re)Appending objects
fix this by freeing the lib-file-data after linking or appending, re-appending 
will be slower now
(as slow as appending for the first time).

Not strictly needed, set the memory for bhead's to zero in readfile.c since 
comparisons are done later on with this data making valgrind complain.

Added some missing headers too.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/fluidsim.c
    trunk/blender/source/blender/blenloader/intern/readfile.c
    trunk/blender/source/blender/src/filelist.c

Modified: trunk/blender/source/blender/blenkernel/intern/fluidsim.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/fluidsim.c   2009-05-12 
11:36:33 UTC (rev 20169)
+++ trunk/blender/source/blender/blenkernel/intern/fluidsim.c   2009-05-12 
15:28:07 UTC (rev 20170)
@@ -36,6 +36,8 @@
 #include "DNA_particle_types.h"
 #include "DNA_scene_types.h" // N_T
 
+#include "PIL_time.h" // for PIL_sleep_ms
+
 #include "BLI_arithb.h"
 #include "BLI_blenlib.h"
 

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c   2009-05-12 
11:36:33 UTC (rev 20169)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c   2009-05-12 
15:28:07 UTC (rev 20170)
@@ -133,6 +133,7 @@
 #include "BKE_main.h" // for Main
 #include "BKE_mesh.h" // for ME_ defines (patching)
 #include "BKE_modifier.h"
+#include "BKE_multires.h" // for multires_free
 #include "BKE_node.h" // for tree type defines
 #include "BKE_object.h"
 #include "BKE_particle.h"
@@ -617,6 +618,11 @@
        BHeadN *new_bhead = 0;
        int readsize;
 
+       /* not strictly needed but shuts valgrind up
+        * since uninitialized memory gets compared */
+       memset(&bhead8, 0, sizeof(BHead8));
+       memset(&bhead4, 0, sizeof(BHead4));
+       
        if (fd) {
                if ( ! fd->eof) {
 
@@ -9233,6 +9239,8 @@
 void BLO_library_append(SpaceFile *sfile, char *dir, int idcode)
 {
        BLO_library_append_(&sfile->libfiledata, sfile->filelist, 
sfile->totfile, dir, sfile->file, sfile->flag, idcode);
+       BLO_blendhandle_close(sfile->libfiledata);
+       sfile->libfiledata= NULL;
 }
 
 void BLO_library_append_(BlendHandle** libfiledata, struct direntry* filelist, 
int totfile, char *dir, char* file, short flag, int idcode)

Modified: trunk/blender/source/blender/src/filelist.c
===================================================================
--- trunk/blender/source/blender/src/filelist.c 2009-05-12 11:36:33 UTC (rev 
20169)
+++ trunk/blender/source/blender/src/filelist.c 2009-05-12 15:28:07 UTC (rev 
20170)
@@ -913,6 +913,8 @@
 void BIF_filelist_append_library(struct FileList *filelist, char *dir, char 
*file, short flag, int idcode)
 {
        BLO_library_append_(&filelist->libfiledata, filelist->filelist, 
filelist->numfiles, dir, file, flag, idcode);
+       BLO_blendhandle_close(filelist->libfiledata);
+       filelist->libfiledata= NULL;
 }
 
 void BIF_filelist_from_main(struct FileList *filelist)


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

Reply via email to