[Qgis-developer] Revision 5269 - qgsgeometry.cpp Compilation Error

nhugent at hispeed.ch nhugent at hispeed.ch
Wed Apr 12 16:46:47 EDT 2006


Hi Peter,

It seems to  compile on my system even without the brakets. Perhaps different compiler version.
I'll commit the brackets in a few minutes.

Marco


>Got this error this morning (April 12) while trying a fresh build of 
>Revision 5269:
>
>qgsgeometry.cpp: In member function 'QgsPoint QgsGeometry::closestSegmentWithContext(QgsPoint&, QgsGeometryVertexIndex&,double&)':
>qgsgeometry.cpp:993: error: jump to case label
>qgsgeometry.cpp:949: error:   crosses initialization of 'int* npoints'
>qgsgeometry.cpp:948: error:   crosses initialization of 'unsigned char* ptr'
>make[4]: *** [libqgis_core_la-qgsgeometry.lo] Error 1
>
>
>It is easily fixed by placing {} around the case statements for the switch() that starts on line 940 of qgsgeometry.cpp.
>
>switch() 
>{
>  case 1:
>  {
>    blah blah
>  }
>  case 2:
>  {
>    blah blah
>  }
>}
>
>
>I apologize for posting this to the list and not putting on trac but I am slowly working my way through all of the documentation for everything.  Below is the a modification for the switch() statement starting on line 940 the compiled correctly for me.
>
>    switch (wkbType)
>    {
>    case QGis::WKBPoint:
>      {
>        // Points have no lines
>        return QgsPoint(0,0);
>      }
>    case QGis::WKBLineString:
>      {
>        closestSegmentIndex = 0;
>        unsigned char* ptr = mGeometry + 5;
>        int* npoints = (int*) ptr;
>        ptr += sizeof(int);
>        for (int index=0; index < *npoints; ++index)
>        {
>          if (index > 0)
>          {
>            prevx = thisx;
>            prevy = thisy;
>          }
>
>          thisx = (double*) ptr;
>          ptr += sizeof(double);
>          thisy = (double*) ptr;
>
>          if (index > 0)
>          {
>            if (
>                 (
>                   testdist = distanceSquaredPointToSegment(point,
>                                                            prevx, prevy,
>                                                            thisx, thisy,
>                                                            minDistPoint) 
>// TODO: save minDistPoint into something meaningful.
>                 )
>                 < sqrDist )
>            {
>#ifdef QGISDEBUG
>//      std::cout << "QgsGeometry::closestSegment: testDist "
>//                << testdist << ", sqrDist"
>//                << sqrDist
>//                << "." << std::endl;
>#endif
>              closestSegmentIndex = index;
>              sqrDist = testdist;
>            }
>          }
>
>          ptr += sizeof(double);
>        }
>
>        beforeVertex.push_back(closestSegmentIndex);
>
>        break;
>
>        //todo: add wkb parsing
>      }
>    case QGis::WKBPolygon:
>      {
>	break;
>      }
>    } // switch (wkbType)
>
>
>
>
>-- 
>====================================
>Peter J. Ersts, Project Specialist
>American Museum of Natural History
>Center for Biodiversity and Conservation
>Central Park West at 79th Street
>New York, New York 10024
>Tel: (212)-496-3488 or (212)-769-5742
>Fax: (212)-313-7295 or (212)-769-5292
>Web: http://cbc.amnh.org
>
>Visit the Indo-South Atlantic Consortium on Humpback Whales 
>Web:  http://www.isach.org
>
>_______________________________________________
>Qgis-developer mailing list
>Qgis-developer at lists.qgis.org
>http://lists.qgis.org/cgi-bin/mailman/listinfo/qgis-developer
>
>



More information about the Qgis-developer mailing list