Update of /cvsroot/ufraw/ufraw
In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv5030

Modified Files:
        dcraw.cc 
Log Message:
dcraw modified 9.21 (1.464). Changelog: Removed C99 dependency in Phase One 
code. Correctly dereference TIFF type 13 (SubIFD) tags.

Index: dcraw.cc
===================================================================
RCS file: /cvsroot/ufraw/ufraw/dcraw.cc,v
retrieving revision 1.313
retrieving revision 1.314
diff -u -d -r1.313 -r1.314
--- dcraw.cc    15 May 2014 03:30:11 -0000      1.313
+++ dcraw.cc    15 Jun 2014 02:30:11 -0000      1.314
@@ -484,14 +484,15 @@
 
 void CLASS cubic_spline (const int *x_, const int *y_, const int len)
 {
-  float A[2*len][2*len], b[2*len], c[2*len], d[2*len];
-  float x[len], y[len];
+  float **A, *b, *c, *d, *x, *y;
   int i, j;
 
-  memset (A, 0, sizeof(A));
-  memset (b, 0, sizeof(b));
-  memset (c, 0, sizeof(c));
-  memset (d, 0, sizeof(d));
+  A = (float **)calloc (((2*len + 4)*sizeof **A + sizeof *A), 2*len);
+  if (!A) return;
+  A[0] = (float *) (A + 2*len);
+  for (i = 1; i < 2*len; i++)
+    A[i] = A[0] + 2*len*i;
+  y = len + (x = i + (d = i + (c = i + (b = A[0] + i*i))));
   for (i = 0; i < len; i++) {
     x[i] = x_[i] / 65535.0;
     y[i] = y_[i] / 65535.0;
@@ -533,6 +534,7 @@
     curve[i] = y_out < 0.0 ? 0 : (y_out >= 1.0 ? 65535 :
                (ushort)(y_out * 65535.0 + 0.5));
   }
+  free (A);
 }
 
 void CLASS canon_600_fixed_wb (int temp)
@@ -5088,7 +5090,7 @@
   *type = get2();
   *len  = get4();
   *save = ftell(ifp) + 4;
-  if (*len * ("11124811248488"[*type < 14 ? *type:0]-'0') > 4)
+  if (*len * ("11124811248484"[*type < 14 ? *type:0]-'0') > 4)
     fseek (ifp, get4()+base, SEEK_SET);
 }
 
@@ -5391,7 +5393,7 @@
       cam_mul[0] = get2() / 256.0;
       cam_mul[2] = get2() / 256.0;
     }
-    if ((tag | 0x70) == 0x2070 && type == 4)
+    if ((tag | 0x70) == 0x2070 && (type == 4 || type == 13))
       fseek (ifp, get4()+base, SEEK_SET);
     if (tag == 0x2020)
       parse_thumb_note (base, 257, 258);
@@ -5685,6 +5687,7 @@
        thumb_length = len;
        break;
       case 61440:                      /* Fuji HS10 table */
+       fseek (ifp, get4()+base, SEEK_SET);
        parse_tiff_ifd (base);
        break;
       case 2: case 256: case 61441:    /* ImageWidth */


------------------------------------------------------------------------------
HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
Find What Matters Most in Your Big Data with HPCC Systems
Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
Leverages Graph Analysis for Fast Processing & Easy Data Exploration
http://p.sf.net/sfu/hpccsystems
_______________________________________________
ufraw-cvs mailing list
ufraw-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ufraw-cvs

Reply via email to