Revision: 42106
          http://brlcad.svn.sourceforge.net/brlcad/?rev=42106&view=rev
Author:   brlcad
Date:     2011-01-12 00:55:34 +0000 (Wed, 12 Jan 2011)

Log Message:
-----------
behold the annoyance of -pedantic.  believe it or not, even for ISO C++, 
variable sized arrays are but a mere gcc extension.  if you want 
variable-sized, you either have to new/delete/malloc/free (bleh) or leverage 
std::vector templatization.  the latter is fortunately a trivial declaration 
tweak and the rest should behave accordingly.

Modified Paths:
--------------
    brlcad/trunk/src/conv/Makefile.am
    brlcad/trunk/src/conv/step/OpenNurbsInterfaces.cpp
    brlcad/trunk/src/conv/step/PullbackCurve.cpp

Modified: brlcad/trunk/src/conv/Makefile.am
===================================================================
--- brlcad/trunk/src/conv/Makefile.am   2011-01-12 00:42:25 UTC (rev 42105)
+++ brlcad/trunk/src/conv/Makefile.am   2011-01-12 00:55:34 UTC (rev 42106)
@@ -5,7 +5,7 @@
 endif
 
 
-AM_CPPFLAGS = ${TCL_CPPFLAGS}
+AM_CPPFLAGS = ${TCL_CPPFLAGS} ${STRICT_FLAGS}
 
 EXTRA_DIST = \
        CMakeLists.txt \

Modified: brlcad/trunk/src/conv/step/OpenNurbsInterfaces.cpp
===================================================================
--- brlcad/trunk/src/conv/step/OpenNurbsInterfaces.cpp  2011-01-12 00:42:25 UTC 
(rev 42105)
+++ brlcad/trunk/src/conv/step/OpenNurbsInterfaces.cpp  2011-01-12 00:55:34 UTC 
(rev 42106)
@@ -1661,7 +1661,7 @@
     double w = cos(dtheta/2.0);
     ON_3dPointArray cpts(2*narcs + 1);
     double angle = t_theta;
-    double W[2*narcs + 1];
+    double W[2 * 4 + 1]; /* 2 * max narcs + 1 */
     ON_3dPoint P0, P1, P2, PM, PT;
     ON_3dVector T0, T2;
 
@@ -1698,7 +1698,7 @@
     int p = degree;
     int m = n + p - 1;
     int dimension = 3;
-    double u[narcs+1];
+    double u[4 + 1]; /* max narcs + 1 */
 
     for (int k = 0; k < narcs+1; k++) {
        u[k] = ((double)k)/narcs;

Modified: brlcad/trunk/src/conv/step/PullbackCurve.cpp
===================================================================
--- brlcad/trunk/src/conv/step/PullbackCurve.cpp        2011-01-12 00:42:25 UTC 
(rev 42105)
+++ brlcad/trunk/src/conv/step/PullbackCurve.cpp        2011-01-12 00:55:34 UTC 
(rev 42106)
@@ -412,7 +412,7 @@
     int num_samples = Q.Count();
     int num_segments = Q.Count() - 1;
     int qsize = num_samples + 3;
-    ON_2dVector qarray[qsize];
+    std::vector<ON_2dVector> qarray(qsize);
     ON_2dVector *q = &qarray[1];
 
     for (int i=1; i < Q.Count(); i++) {
@@ -425,8 +425,8 @@
     q[num_samples+1] = 2*q[num_samples] - q[num_samples-1];
     q[num_samples+2] = 2*q[num_samples+1] - q[num_samples];
 
-    ON_2dVector T[num_samples];
-       double A[num_samples];
+    std::vector<ON_2dVector> T(num_samples);
+    std::vector<double> A(num_samples);
     for (int k=0; k < num_samples; k++) {
        ON_3dVector a = ON_CrossProduct(q[k-1], q[k]);
        ON_3dVector b = ON_CrossProduct(q[k+1], q[k+2]);
@@ -439,7 +439,7 @@
                T[k] = (1.0 - A[k])*q[k] + A[k]*q[k+1];
        T[k].Unitize();
     }
-    ON_2dPointArray P[num_samples-1];
+    std::vector<ON_2dPointArray> P(num_samples-1);
     ON_2dPointArray control_points;
     control_points.Append(Q[0]);
     for (int i=1; i<num_samples; i++) {
@@ -470,7 +470,7 @@
     control_points.Append(Q[num_samples-1]);
 
     //generateParameters(spline);
-    double u[num_segments+1];
+    std::vector<double> u(num_segments+1);
     u[0] = 0.0;
     for (int k=0;k<num_segments;k++) {
        u[k+1] = u[k] + 3.0*(P[k][1]-P[k][0]).Length();
@@ -512,7 +512,7 @@
     int num_samples = Q.Count();
     int num_segments = Q.Count() - 1;
     int qsize = num_samples + 3;
-    ON_3dVector qarray[qsize];
+    std::vector<ON_3dVector> qarray(qsize);
     ON_3dVector *q = &qarray[1];
 
     for (int i = 1; i < Q.Count(); i++) {
@@ -525,8 +525,8 @@
     q[num_samples + 1] = 2 * q[num_samples] - q[num_samples - 1];
     q[num_samples + 2] = 2 * q[num_samples + 1] - q[num_samples];
 
-    ON_3dVector T[num_samples];
-    double A[num_samples];
+    std::vector<ON_3dVector> T(num_samples);
+    std::vector<double> A(num_samples);
     for (int k = 0; k < num_samples; k++) {
        ON_3dVector avec = ON_CrossProduct(q[k - 1], q[k]);
        ON_3dVector bvec = ON_CrossProduct(q[k + 1], q[k + 2]);
@@ -539,7 +539,7 @@
        T[k] = (1.0 - A[k]) * q[k] + A[k] * q[k + 1];
        T[k].Unitize();
     }
-    ON_3dPointArray P[num_samples - 1];
+    std::vector<ON_3dPointArray> P(num_samples - 1);
     ON_3dPointArray control_points;
     control_points.Append(Q[0]);
     for (int i = 1; i < num_samples; i++) {
@@ -570,7 +570,7 @@
     control_points.Append(Q[num_samples - 1]);
 
     //generateParameters(spline);
-    double u[num_segments + 1];
+    std::vector<double> u(num_segments + 1);
     u[0] = 0.0;
     for (int k = 0; k < num_segments; k++) {
        u[k + 1] = u[k] + 3.0 * (P[k][1] - P[k][0]).Length();


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
Protect Your Site and Customers from Malware Attacks
Learn about various malware tactics and how to avoid them. Understand 
malware threats, the impact they can have on your business, and how you 
can protect your company and customers by using code signing.
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to