[argyllcms] icc__lab2lab.c - compilation problem
- From: howdy555@xxxxxxxxx
- To: argyllcms@xxxxxxxxxxxxx
- Date: Fri, 13 Feb 2009 23:00:31 +0100
Hello again!
I would like to (at least partially) implement the dummy colorimeter
device for Argyll. To even dream of doing anything like this I first
need a working program compiled from the source. I am using the
Microsoft Visual C++ 2008 Express Edition and I cannot get this to
work...
More specificially, take a look at the following snippet from
icc/lab2lab.c (line 193):
/* Use helper function to do the hard work. */
if (wo->set_tables(wo, NULL,
icSigLabData, /* Input color space */
icSigLabData, /* Output color space */
Lab_Labp, /* Input transfer function, Lab->Lab' */
NULL, NULL, /* Use default Maximum range of Lab' values */
Labp_Labp, /* Lab' -> Lab' transfer function */
NULL, NULL, /* Use default Maximum range of Lab' values */
Labp_Lab /* Linear output transform Lab'->Lab */
) != 0)
error("Setting 16 bit Lab->Lab Lut failed: %d, %s",wr_icco->errc,wr_icco->err);
-------------------------
As wo is
icmLut *wo;
hence we take a look at the icc/icc.h to find in line 682:
-------------------------
struct _icmLut {
// [..........]
/* Helper function to setup a Lut tables contents */
int (*set_tables) (
struct _icmLut *p,
/* Pointer to Lut object */
int flags,
/* Setting flags */
void *cbctx,
/* Opaque callback context pointer value */
icColorSpaceSignature insig, /* Input color
space */
icColorSpaceSignature outsig, /* Output color
space */
[.............]
}
This would imply that "icSigLabData" is converted to "cbctx" whereas I
think it should be set to "insig".
What am I missing?
If this is a genuine Argyll error and not some Microsoft's trash, then
take a look at line 209 of lab2lab.c:
wr_icco->free(wr_icco);
According to IntelliSense, wr_icco (of type icc*) does NOT contain a
member called "free".....
Other related posts: