Opened 20 years ago

Last modified 19 years ago

#638 closed defect (fixed)

VRT warper serialization broken on Windows

Reported by: starged@… Owned by: warmerdam
Priority: high Milestone:
Component: default Version: unspecified
Severity: normal Keywords:
Cc:

Description

The command:
$ gdalwarp -of VRT -rc -tr 10 10 test.tif test.vrt

produces the following error:
ERROR 1: Attempt to serialize unrecognised transformer.

The output file is correctly generated except for the <Transformer> line.

(quoting Frank)
The problem is that internally I actually compare the transformer function
pointer to determine how to serialize the transformer.  But the pointer to
a function will vary depending on whether you are "in the DLL" where it is
defined, or outside the DLL.  That relates to the way that DLLs function call
indirection is handled.  Apparently you actually link in a stub function into
your calling .exe (or .dll) and then this stub function looks up the real
function and calls it.  This makes my whole approach to serializing transformer
fall apart unless you happen to statically link one big giant executable (or
form your GDALWarpOptions within the GDAL DLL itself I suppose).

Change History (1)

comment:1 by warmerdam, 19 years ago

This is fixed now.  I substantially modified how the transformers are
kept track of adding a "base class object" simulated in C with function pointers.
These are used for serializing avoiding the recognisation issue with the 
transform functions on windows. 

Note: See TracTickets for help on using tickets.