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

Modified Files:
        dcraw.cc dcraw_api.cc ufobject.cc ufraw_lensfun.cc 
Log Message:
Port UFRaw to OpenSolaris. Patch by James Lee.

Index: ufraw_lensfun.cc
===================================================================
RCS file: /cvsroot/ufraw/ufraw/ufraw_lensfun.cc,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- ufraw_lensfun.cc    5 Apr 2010 14:30:18 -0000       1.17
+++ ufraw_lensfun.cc    2 May 2010 06:30:25 -0000       1.18
@@ -149,9 +149,9 @@
     int precision;
     if (number > 10.0 && (int)(10*number)%10 != 0)
        // Support non-integer focal lengths longer than 10mm.
-       precision = MAX(-floor(log(number) / log(10) - 1.99), 0);
+       precision = MAX(-floor(log(number) / log(10.0) - 1.99), 0);
     else if (number > 0.0)
-       precision = MAX(-floor(log(number) / log(10) - 0.99), 0);
+       precision = MAX(-floor(log(number) / log(10.0) - 0.99), 0);
     else
        precision = 0;
     snprintf(buffer, _buffer_size, "%.*f", precision, number);
@@ -256,7 +256,7 @@
        double value = 0.25;
        while (value < 1001) {
            *this << new UFString(ufPreset, _StringNumber(buffer, value));
-           value *= sqrt(2);
+           value *= sqrt(2.0);
            if (value > 127 && value < 129) value = 125;
        }
     }

Index: dcraw.cc
===================================================================
RCS file: /cvsroot/ufraw/ufraw/dcraw.cc,v
retrieving revision 1.215
retrieving revision 1.216
diff -u -d -r1.215 -r1.216
--- dcraw.cc    6 Apr 2010 15:50:36 -0000       1.215
+++ dcraw.cc    2 May 2010 06:30:25 -0000       1.216
@@ -3663,7 +3663,7 @@
   if ((nc = colors) == 3 && filters) nc++;
   FORC(nc) {                   /* denoise R,G1,B,G3 individually */
     for (i=0; i < size; i++)
-      fimg[i] = 256 * sqrt(image[i][c] << scale);
+      fimg[i] = 256 * sqrt((float) (image[i][c] << scale));
     for (hpass=lev=0; lev < 5; lev++) {
       lpass = size*((lev & 1)+1);
       for (row=0; row < iheight; row++) {
@@ -3707,7 +3707,7 @@
                window[2][col-1] + window[2][col+1] - black*4 )
              * mul[row & 1] + (window[1][col] - black) * 0.5 + black;
        avg = avg < 0 ? 0 : sqrt(avg);
-       diff = sqrt(BAYER(row,col)) - avg;
+       diff = sqrt((float) BAYER(row,col)) - avg;
        if      (diff < -thold) diff += thold;
        else if (diff >  thold) diff -= thold;
        else diff = 0;
@@ -4132,7 +4132,7 @@
 
   for (i=0; i < 0x10000; i++) {
     r = i / 65535.0;
-    cbrt[i] = r > 0.008856 ? pow(r,1/3.0) : 7.787*r + 16/116.0;
+    cbrt[i] = r > 0.008856 ? pow(r, (float) (1/3.0)) : 7.787*r + 16/116.0;
   }
   for (i=0; i < 3; i++)
     for (j=0; j < colors; j++)
@@ -4319,7 +4319,7 @@
 
   dcraw_message (DCRAW_VERBOSE,_("Rebuilding highlights...\n"));
 
-  grow = pow (2, 4-highlight);
+  grow = pow (2.0, 4-highlight);
   FORCC hsat[c] = 32000 * pre_mul[c];
   for (kc=0, c=1; c < colors; c++)
     if (pre_mul[kc] < pre_mul[c]) kc = c;

Index: ufobject.cc
===================================================================
RCS file: /cvsroot/ufraw/ufraw/ufobject.cc,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- ufobject.cc 4 Mar 2010 04:52:32 -0000       1.8
+++ ufobject.cc 2 May 2010 06:30:25 -0000       1.9
@@ -190,7 +190,7 @@
        AccuracyDigits(std::max(accuracyDigits < 0 ?
            3 - (int)floor(log(Maximum - Minimum) / log(10.0)) :
            accuracyDigits, 0)),
-       Accuracy(pow(10, -AccuracyDigits)),
+       Accuracy(pow(10.0, -AccuracyDigits)),
        Step(step == 0.0 ? Accuracy * 10.0 : step),
        Jump(jump == 0.0 ? Step * 10.0 : jump) { }
 };
@@ -542,7 +542,7 @@
 
 class _UFNameCompare {
 public:
-    bool operator()(char const *a, char const *b) {
+    bool operator()(char const *a, char const *b) const {
        return strcmp(a, b) < 0;
     }
 };

Index: dcraw_api.cc
===================================================================
RCS file: /cvsroot/ufraw/ufraw/dcraw_api.cc,v
retrieving revision 1.70
retrieving revision 1.71
diff -u -d -r1.70 -r1.71
--- dcraw_api.cc        28 Mar 2010 17:45:14 -0000      1.70
+++ dcraw_api.cc        2 May 2010 06:30:25 -0000       1.71
@@ -365,12 +365,13 @@
 static inline void shrink_row(dcraw_image_type *obase, int osize,
        dcraw_image_type *ibase, int isize, int colors, int scale)
 {
-    unsigned sum[osize];
+    unsigned *sum;
     dcraw_image_type *iptr;
     int cl, i;
 
+    sum = (unsigned*) g_malloc(osize * sizeof(unsigned));
     for (cl = 0; cl < colors; ++cl) {
-       memset(sum, 0, sizeof (sum));
+       memset(sum, 0, osize * sizeof (unsigned));
        iptr = ibase;
        for (i = 0; i < scale; ++i) {
            shrink_accumulate_row(sum, osize, iptr, scale, cl);
@@ -379,6 +380,7 @@
        for (i = 0; i < osize; ++i)
            obase[i][cl] = sum[i] / (scale * scale);
     }
+    g_free(sum); 
 }
 
 static inline void shrink_pixel(dcraw_image_type pixp, int row, int col,
@@ -388,8 +390,8 @@
     int ri, ci, cl;
     dcraw_image_type *ibase;
 
-    memset(sum, 0, sizeof (sum));
-    memset(count, 0, sizeof (count));
+    memset(sum, 0, 4 * sizeof (unsigned));
+    memset(count, 0, 4 * sizeof (unsigned));
     for (ri = 0; ri < scale; ++ri) {
        ibase = hh->raw.image + ((row * scale + ri) / 2) * hh->raw.width;
        for (ci = 0; ci < scale; ++ci) {
@@ -408,7 +410,7 @@
     DCRaw *d = (DCRaw *)hh->dcraw;
     int h, w, fujiWidth, r, c, ri, recombine, pixels, f4;
     dcraw_image_type *ibase, *obase;
-    unsigned fseq[scale];
+    unsigned *fseq;
     unsigned short *pixp;
 
     g_free(d->messageBuffer);
@@ -435,6 +437,7 @@
 #pragma omp parallel for schedule(static) private(r,ri,fseq,c,pixp)
 #endif
        for (r = 0; r < h; ++r) {
+           fseq = (unsigned*) g_malloc(scale * sizeof(unsigned));
            for (ri = 0; ri < scale; ++ri)
                fseq[ri] = fc_sequence(f4, r + ri);
            for (c = 0; c < w; ++c) {
@@ -443,6 +446,7 @@
                if (recombine)
                    pixp[1] = (pixp[1] + pixp[3]) / 2;
            }
+           g_free(fseq);
        }
     } else {
        if (hh->filters!=0) scale /= 2;


------------------------------------------------------------------------------
_______________________________________________
ufraw-cvs mailing list
ufraw-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ufraw-cvs

Reply via email to