forked from bartvdbraak/blender
FIX: BLI_makestringcode called with bad pointer mainl->curlib
Moved call to before blo_join_main where pointer gets killed. Otherwise Blender crashed when appending a file and selecting relative filenames.
This commit is contained in:
parent
129097a097
commit
ded4709a9d
@ -5875,6 +5875,13 @@ void BLO_library_append(SpaceFile *sfile, char *dir, int idcode)
|
|||||||
/* do this when expand found other libs */
|
/* do this when expand found other libs */
|
||||||
read_libraries(fd, &fd->mainlist);
|
read_libraries(fd, &fd->mainlist);
|
||||||
|
|
||||||
|
if(sfile->flag & FILE_STRINGCODE) {
|
||||||
|
/* uses old .blend file (*filename) as reference */
|
||||||
|
BLI_makestringcode(filename, mainl->curlib->name);
|
||||||
|
/* the caller checks for appended library, so we make sure names match */
|
||||||
|
BLI_strncpy(dir, mainl->curlib->name, sizeof(mainl->curlib->name));
|
||||||
|
}
|
||||||
|
|
||||||
blo_join_main(&fd->mainlist);
|
blo_join_main(&fd->mainlist);
|
||||||
G.main= fd->mainlist.first;
|
G.main= fd->mainlist.first;
|
||||||
|
|
||||||
@ -5890,14 +5897,7 @@ void BLO_library_append(SpaceFile *sfile, char *dir, int idcode)
|
|||||||
if(fd->flags & FD_FLAGS_SWITCH_ENDIAN) {
|
if(fd->flags & FD_FLAGS_SWITCH_ENDIAN) {
|
||||||
blo_freefiledata((FileData*) sfile->libfiledata);
|
blo_freefiledata((FileData*) sfile->libfiledata);
|
||||||
sfile->libfiledata= 0;
|
sfile->libfiledata= 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(sfile->flag & FILE_STRINGCODE) {
|
|
||||||
/* uses old .blend file (*filename) as reference */
|
|
||||||
BLI_makestringcode(filename, mainl->curlib->name);
|
|
||||||
/* the caller checks for appended library, so we make sure names match */
|
|
||||||
BLI_strncpy(dir, mainl->curlib->name, sizeof(mainl->curlib->name));
|
|
||||||
}
|
|
||||||
|
|
||||||
if(sfile->flag & FILE_ATCURSOR) {
|
if(sfile->flag & FILE_ATCURSOR) {
|
||||||
centerbase= (G.scene->base.first);
|
centerbase= (G.scene->base.first);
|
||||||
|
Loading…
Reference in New Issue
Block a user