[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [48365] branches/soc-2011-tomato/source/ blender: fix for segfault on undo because of loading color profile info.
Campbell Barton
ideasman42 at gmail.com
Thu Jun 28 11:18:12 CEST 2012
Revision: 48365
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48365
Author: campbellbarton
Date: 2012-06-28 09:18:07 +0000 (Thu, 28 Jun 2012)
Log Message:
-----------
fix for segfault on undo because of loading color profile info.
Modified Paths:
--------------
branches/soc-2011-tomato/source/blender/blenloader/intern/readfile.c
branches/soc-2011-tomato/source/blender/imbuf/intern/colormanagement.c
Modified: branches/soc-2011-tomato/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenloader/intern/readfile.c 2012-06-28 09:08:11 UTC (rev 48364)
+++ branches/soc-2011-tomato/source/blender/blenloader/intern/readfile.c 2012-06-28 09:18:07 UTC (rev 48365)
@@ -8010,7 +8010,10 @@
link_global(fd, bfd); /* as last */
/* OCIO_TODO: is there nicer place for this? */
- IMB_colormanagement_check_file_config(bfd->main);
+ /* ... no its not, perhaps setup_app_data? - campbell */
+ if (fd->memfile == NULL) { /* don't do this for UNDO */
+ IMB_colormanagement_check_file_config(bfd->main);
+ }
return bfd;
}
Modified: branches/soc-2011-tomato/source/blender/imbuf/intern/colormanagement.c
===================================================================
--- branches/soc-2011-tomato/source/blender/imbuf/intern/colormanagement.c 2012-06-28 09:08:11 UTC (rev 48364)
+++ branches/soc-2011-tomato/source/blender/imbuf/intern/colormanagement.c 2012-06-28 09:18:07 UTC (rev 48365)
@@ -562,18 +562,20 @@
ColorManagedDisplay *default_display = colormanage_display_get_default();
ColorManagedView *default_view = colormanage_view_get_default(default_display);
- for (win = wm->windows.first; win; win = win->next) {
- if (win->display_device[0] == '\0') {
- BLI_strncpy(win->display_device, default_display->name, sizeof(win->display_device));
- }
- else {
- ColorManagedDisplay *display = colormanage_display_get_named(win->display_device);
+ if (wm) {
+ for (win = wm->windows.first; win; win = win->next) {
+ if (win->display_device[0] == '\0') {
+ BLI_strncpy(win->display_device, default_display->name, sizeof(win->display_device));
+ }
+ else {
+ ColorManagedDisplay *display = colormanage_display_get_named(win->display_device);
- if (!display) {
- printf("Blender color management: Window display \"%s\" not found, setting to default (\"%s\").\n",
- win->display_device, default_display->name);
+ if (!display) {
+ printf("Blender color management: Window display \"%s\" not found, setting to default (\"%s\").\n",
+ win->display_device, default_display->name);
- BLI_strncpy(win->display_device, default_display->name, sizeof(win->display_device));
+ BLI_strncpy(win->display_device, default_display->name, sizeof(win->display_device));
+ }
}
}
}
More information about the Bf-blender-cvs
mailing list