[FWTools] OGRFeature memory problem?

Mike Toothaker mtoothaker at milcord.com
Mon May 15 09:00:34 EDT 2006



I will start off by apologizing for my lack of geospatial knowledge.  I have
just started a project and I am trying

to get caught up on the geospatial stuff as quickly as I can while working
with it.  We are using gdal in our project

and I have the following code(almost an exact copy paste from the gdal





    OGRDataSource *pDS;


    pDS = OGRSFDriverRegistrar::Open( "PG:user=postgres password=passwd
dbname=dcmms host=localhost port=5432", TRUE );

    if( pDS == NULL )


        printf( "Open DB failed.\n%s" );

        exit( 1 );



    OGRLayer *poLayer;


    poLayer = pDS->CreateLayer( "point_out", NULL, wkbPoint, NULL );

    if( poLayer == NULL )


        printf( "Layer creation failed.\n" );

        exit( 1 );



    OGRFieldDefn oField( "Name", OFTString );




    if( poLayer->CreateField( &oField ) != OGRERR_NONE )


        printf( "Creating Name field failed.\n" );

        exit( 1 );



    double x = 5.0, y = 50.0;

    char szName[] = "Hi There";


        OGRFeature *poFeature;


        poFeature = new OGRFeature( poLayer->GetLayerDefn() );

        poFeature->SetField( "Name", szName );


        OGRPoint *poPoint = new OGRPoint();


        poPoint->setX( x );

        poPoint->setY( y );


        poFeature->SetGeometryDirectly( poPoint ); 


        if( poLayer->CreateFeature( poFeature ) != OGRERR_NONE )


           printf( "Failed to create feature in shapefile.\n" );

           exit( 1 );



        delete poFeature;           //<----- Error here


    OGRDataSource::DestroyDataSource( pDS );






 I got the dlls from the fwtools 1.3.2 release online.  I am using VS C++
2005(I am also new to using 2005, I have been using

6.0 up to the point of working on this project).  I get the following error
when delete is called on the OGRFeature object:


"Windows has triggered a breakpoint in GDALConsoleTest.exe.  This may be due
to a corruption of the heap, and indicates 

a bug in GDALConsoleTest.exe or any of the DLLs it has loaded. Output window
may have more diagnostic information."


Unfortunately my output window has no information.  I had thoughts of
looking at the code and possibly figuring out what

the problem is, but when I build gdal from source I can't get it to connect
to my postgres db, which is an entirely different

story all together.  I am assuming I must be doing something wrong on my end
because I can't imagine I am the only one

using the OGRFeature class and this seems like a pretty normal thing to do
since it is what is recommended on the gdal 

website.  If I don't do the delete I get memory leaks.  So basically shafted
if I do, shafted if I don't.  :-(


Thanks in advance for any help you can give.



mtoothaker at milcord.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.maptools.org/pipermail/fwtools/attachments/20060515/5c20760e/attachment.html

More information about the FWTools mailing list