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));
+                               }
                        }
                }
        }

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

Reply via email to