[postgis-users] Compilation error postgis_geos_wrapper.c

strk strk at keybit.net
Tue Oct 14 09:53:35 PDT 2003


pramsey wrote:
> Does the const'ed version of GEOS currently compile and run all tests?
> Paul

Compiles with (almost) no warnings.
Runs all tests with no errors.
Leaks a lot.

The only compiler warning I get is about SweepLineEvent destructor
deleting a void *obj. Many leaks are due to modifications still
in discussion (see: "about getCoordinates()" on geos-devel).

--strk;

> 
> strk wrote:
> 
> > Here is a context diff
> > 
> > --strk;
> > 
> > ---8<-------------------------------------------------------------
> > 
> > Index: postgis_geos_wrapper.cpp
> > ===================================================================
> > RCS file: /home/cvs/postgis/postgis/postgis_geos_wrapper.cpp,v
> > retrieving revision 1.7
> > diff -c -r1.7 postgis_geos_wrapper.cpp
> > *** postgis_geos_wrapper.cpp    3 Oct 2003 16:45:37 -0000       1.7
> > --- postgis_geos_wrapper.cpp    14 Oct 2003 09:34:33 -0000
> > ***************
> > *** 102,110 ****
> >   extern "C" POINT3D  *GEOSGetCoordinate(Geometry *g1);
> >   extern "C" POINT3D  *GEOSGetCoordinates(Geometry *g1);
> >   extern "C" int      GEOSGetNumCoordinate(Geometry *g1);
> > ! extern "C" Geometry *GEOSGetGeometryN(Geometry *g1, int n);
> > ! extern "C" Geometry *GEOSGetExteriorRing(Geometry *g1);
> > ! extern "C" Geometry *GEOSGetInteriorRingN(Geometry *g1, int n);
> >   extern "C" int      GEOSGetNumInteriorRings(Geometry *g1);
> >   extern "C" int      GEOSGetSRID(Geometry *g1);
> >   extern "C" int      GEOSGetNumGeometries(Geometry *g1);
> > --- 102,110 ----
> >   extern "C" POINT3D  *GEOSGetCoordinate(Geometry *g1);
> >   extern "C" POINT3D  *GEOSGetCoordinates(Geometry *g1);
> >   extern "C" int      GEOSGetNumCoordinate(Geometry *g1);
> > ! extern "C" const Geometry *GEOSGetGeometryN(Geometry *g1, int n);
> > ! extern "C" const Geometry *GEOSGetExteriorRing(Geometry *g1);
> > ! extern "C" const Geometry *GEOSGetInteriorRingN(Geometry *g1, int n);
> >   extern "C" int      GEOSGetNumInteriorRings(Geometry *g1);
> >   extern "C" int      GEOSGetSRID(Geometry *g1);
> >   extern "C" int      GEOSGetNumGeometries(Geometry *g1);
> > ***************
> > *** 836,842 ****
> >   {
> >         try{
> >                 POINT3D         *result = (POINT3D*) malloc (sizeof(POINT3D));
> > !               Coordinate *c =g1->getCoordinate();
> > 
> >                 result->x = c->x;
> >                 result->y = c->y;
> > --- 836,842 ----
> >   {
> >         try{
> >                 POINT3D         *result = (POINT3D*) malloc (sizeof(POINT3D));
> > !               const Coordinate *c =g1->getCoordinate();
> > 
> >                 result->x = c->x;
> >                 result->y = c->y;
> > ***************
> > *** 922,931 ****
> > 
> > 
> >   //call only on GEOMETRYCOLLECTION or MULTI*
> > ! Geometry *GEOSGetGeometryN(Geometry *g1, int n)
> >   {
> >         try{
> > !               GeometryCollection *gc = (GeometryCollection *) g1;
> >                 return gc->getGeometryN(n);
> >         }
> >         catch(...)
> > --- 922,931 ----
> > 
> > 
> >   //call only on GEOMETRYCOLLECTION or MULTI*
> > ! const Geometry *GEOSGetGeometryN(Geometry *g1, int n)
> >   {
> >         try{
> > !               const GeometryCollection *gc = (GeometryCollection *) g1;
> >                 return gc->getGeometryN(n);
> >         }
> >         catch(...)
> > ***************
> > *** 936,942 ****
> > 
> > 
> >   //call only on polygon
> > ! Geometry *GEOSGetExteriorRing(Geometry *g1)
> >   {
> >         try{
> >                 Polygon *p = (Polygon *) g1;
> > --- 936,942 ----
> > 
> > 
> >   //call only on polygon
> > ! const Geometry *GEOSGetExteriorRing(Geometry *g1)
> >   {
> >         try{
> >                 Polygon *p = (Polygon *) g1;
> > ***************
> > *** 949,955 ****
> >   }
> > 
> >   //call only on polygon
> > ! Geometry *GEOSGetInteriorRingN(Geometry *g1,int n)
> >   {
> >         try{
> >                 Polygon *p = (Polygon *) g1;
> > --- 949,955 ----
> >   }
> > 
> >   //call only on polygon
> > ! const Geometry *GEOSGetInteriorRingN(Geometry *g1,int n)
> >   {
> >         try{
> >                 Polygon *p = (Polygon *) g1;
> > 
> > ---8<-------------------------------------------------------------
> > 
> > Horst.Duester wrote:
> > 
> >>During compilation of PostGIS with GEOS the compilation process breaks with
> >>the following error message:
> >> 
> >>c++ -O2 -Wall -Wmissing-prototypes -Wmissing-declarations -g -fexceptions
> >>-I. -DFRO
> >>NTEND -DSYSCONFDIR='"/home/hdus/local/etc/postgresql"'  -DUSE_VERSION=72
> >>-I/home/hdus
> >>/local/include/geos -DUSE_GEOS -I../../src/include   -c -o
> >>postgis_geos_wrapper.o pos
> >>tgis_geos_wrapper.cpp
> >>postgis_geos_wrapper.cpp: In function `POINT3D *GEOSGetCoordinate
> >>(geos::Geometry *)':
> >>postgis_geos_wrapper.cpp:839: cannot convert `const geos::Coordinate *'
> >>to `geos::Coordinate *' in initialization
> >>postgis_geos_wrapper.cpp: In function `geos::Geometry *GEOSGetGeometryN
> >>(geos::Geometry *, int)':
> >>postgis_geos_wrapper.cpp:929: cannot convert `const geos::Geometry *'
> >>to `geos::Geometry *' in return
> >>postgis_geos_wrapper.cpp: In function `geos::Geometry
> >>*GEOSGetExteriorRing (geos::Geometry *)':
> >>postgis_geos_wrapper.cpp:943: cannot convert `const geos::LineString *'
> >>to `geos::Geometry *' in return
> >>postgis_geos_wrapper.cpp: In function `geos::Geometry
> >>*GEOSGetInteriorRingN (geos::Geometry *, int)':
> >>postgis_geos_wrapper.cpp:956: cannot convert `const geos::LineString *'
> >>to `geos::Geometry *' in return
> >>make: *** [postgis_geos_wrapper.o] Error 1
> >> 
> >>GEOS_20031014
> >>Postgis-cvs from today
> >>PostgreSQL 7.2.4
> >> 
> >>Any hint???
> >> 
> >>With best regards 
> >> 
> >>
> >>Dr. Horst Düster 
> >>Leiter 
> >>Abteilung SO!GIS Koordination
> >>Rötihof 
> >>4500 Solothurn 
> >>
> >>Tel.: 032 627 25 32 
> >>Fax: 032 627 22 14
> >>
> >>horst.duester at bd.so.ch <mailto:horst.duester at bd.so.ch> 
> >>www.sogis.so.ch <http://www.sogis.so.ch/> 
> >>
> >>
> >> 
> >>
> >>_______________________________________________
> >>postgis-users mailing list
> >>postgis-users at postgis.refractions.net
> >>http://postgis.refractions.net/mailman/listinfo/postgis-users
> > 
> > 
> > _______________________________________________
> > postgis-users mailing list
> > postgis-users at postgis.refractions.net
> > http://postgis.refractions.net/mailman/listinfo/postgis-users
> 
> 
> -- 
>        __
>       /
>       | Paul Ramsey
>       | Refractions Research
>       | Email: pramsey at refractions.net
>       | Phone: (250) 885-0632
>       \_
> 
> 
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users



More information about the postgis-users mailing list