Update of /cvsroot/ufraw/ufraw
In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv29307

Modified Files:
        uf_gtk.cc ufraw.h ufraw_developer.c ufraw_preview.c 
        ufraw_ufraw.c 
Log Message:
Reduced the number of calls to ufraw_developer_prepare() from
ufraw_preview to 1.


Index: ufraw.h
===================================================================
RCS file: /cvsroot/ufraw/ufraw/ufraw.h,v
retrieving revision 1.138
retrieving revision 1.139
diff -u -d -r1.138 -r1.139
--- ufraw.h     25 Nov 2009 16:15:45 -0000      1.138
+++ ufraw.h     27 Nov 2009 07:18:23 -0000      1.139
@@ -278,8 +278,9 @@
     gsize unzippedBufLen;
     developer_data *developer;
     developer_data *AutoDeveloper;
+    guint8 *displayProfile;
+    gint displayProfileSize;
     conf_data *conf;
-    void *widget;
     guchar *inputExifBuf;
     guint inputExifBufLen;
     guchar *outputExifBuf;

Index: ufraw_developer.c
===================================================================
RCS file: /cvsroot/ufraw/ufraw/ufraw_developer.c,v
retrieving revision 1.77
retrieving revision 1.78
diff -u -d -r1.77 -r1.78
--- ufraw_developer.c   31 Oct 2009 01:59:19 -0000      1.77
+++ ufraw_developer.c   27 Nov 2009 07:18:23 -0000      1.78
@@ -136,7 +136,6 @@
     if ( profile!=NULL ) {
        if (d->profile[type]!=NULL) cmsCloseProfile(d->profile[type]);
        d->profile[type] = cmsOpenProfileFromMem(profile, size);
-       g_free(profile);
        // If embedded profile is invalid fall-back to sRGB
        if (d->profile[type]==NULL)
            d->profile[type] = cmsCreate_sRGBProfile();

Index: ufraw_ufraw.c
===================================================================
RCS file: /cvsroot/ufraw/ufraw/ufraw_ufraw.c,v
retrieving revision 1.220
retrieving revision 1.221
diff -u -d -r1.220 -r1.221
--- ufraw_ufraw.c       25 Nov 2009 16:15:45 -0000      1.220
+++ ufraw_ufraw.c       27 Nov 2009 07:18:23 -0000      1.221
@@ -253,7 +253,8 @@
     uf->raw_color = raw->raw_color;
     uf->developer = NULL;
     uf->AutoDeveloper = NULL;
-    uf->widget = NULL;
+    uf->displayProfile = NULL;
+    uf->displayProfileSize = 0;
     uf->RawHistogram = NULL;
     uf->HaveFilters = raw->filters!=0;
 #ifdef HAVE_LENSFUN
@@ -676,6 +677,7 @@
     g_free(uf->thumb.buffer);
     developer_destroy(uf->developer);
     developer_destroy(uf->AutoDeveloper);
+    g_free(uf->displayProfile);
     g_free(uf->RawHistogram);
 #ifdef HAVE_LENSFUN
     g_free(uf->modifier);
@@ -730,6 +732,16 @@
     } else {
        if ( uf->developer==NULL )
            uf->developer = developer_init();
+       if (mode == display_developer) {
+           if ( uf->conf->profileIndex[display_profile]!=0 ) {
+               g_free(uf->displayProfile);
+               uf->displayProfile = NULL;
+           }
+           developer_display_profile(uf->developer, uf->displayProfile,
+                   uf->displayProfileSize,
+                   uf->conf->profile[display_profile]
+                       [uf->conf->profileIndex[display_profile]].productName);
+       }
        developer_prepare(uf->developer, uf->conf,
            uf->rgbMax, uf->rgb_cam, uf->colors, useMatrix, mode);
     }

Index: ufraw_preview.c
===================================================================
RCS file: /cvsroot/ufraw/ufraw/ufraw_preview.c,v
retrieving revision 1.313
retrieving revision 1.314
diff -u -d -r1.313 -r1.314
--- ufraw_preview.c     27 Nov 2009 04:15:37 -0000      1.313
+++ ufraw_preview.c     27 Nov 2009 07:18:23 -0000      1.314
@@ -950,17 +950,8 @@
     gtk_label_set_text(GTK_LABEL(data->BlackLabel), text);
 
     if ( CFG->profileIndex[display_profile]==0 ) {
-       guint8 *displayProfile;
-       gint profileSize;
-       uf_get_display_profile(data->PreviewWidget, &displayProfile,
-               &profileSize);
-       developer_display_profile(Developer, displayProfile, profileSize,
-               CFG->profile[display_profile]
-                       [CFG->profileIndex[display_profile]].productName);
-    } else {
-       developer_display_profile(Developer, NULL, 0,
-               CFG->profile[display_profile]
-                       [CFG->profileIndex[display_profile]].productName);
+       uf_get_display_profile(data->PreviewWidget, &data->UF->displayProfile,
+               &data->UF->displayProfileSize);
     }
     ufraw_developer_prepare(data->UF, display_developer);
     ufraw_convert_prepare_buffers(data->UF);
@@ -5515,7 +5506,6 @@
            G_CALLBACK(control_button_key_press_event), data);
     g_object_set_data(G_OBJECT(previewWindow), "Preview-Data", data);
     ufraw_focus(previewWindow, TRUE);
-    uf->widget = previewWindow;
 
     /* With the following guesses the window usually fits into the screen.
      * There should be more intelligent settings to window size. */
@@ -5871,9 +5861,6 @@
        CFG->size = 0;
     }
 
-    /* There's another call in render_preview_now() and both are needed */
-    ufraw_developer_prepare(uf, display_developer);
-
     /* Save initial WB data for the sake of "Reset WB" */
     g_strlcpy(data->initialWB, CFG->wb, max_name);
     data->initialTemperature = CFG->temperature;

Index: uf_gtk.cc
===================================================================
RCS file: /cvsroot/ufraw/ufraw/uf_gtk.cc,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- uf_gtk.cc   3 Jul 2008 15:45:06 -0000       1.13
+++ uf_gtk.cc   27 Nov 2009 07:18:23 -0000      1.14
@@ -257,9 +257,11 @@
 }
 #endif /* GDK_WINDOWING_QUARTZ */
 
+// On X11 the display profile can be embedded using the 'xicc' command.
 void uf_get_display_profile(GtkWidget *widget,
     guint8 **buffer, gint *buffer_size)
 {
+    g_free(*buffer);
     *buffer = NULL;
     *buffer_size = 0;
 #if defined GDK_WINDOWING_X11


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
ufraw-cvs mailing list
ufraw-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ufraw-cvs

Reply via email to