Hi,
Excellent! Thank you very much for the fix.
Regards
Marti.
----- Original Message -----
Sent: Thursday, August 03, 2006 10:27
AM
Subject: [Lcms-user] problem in
_cmsSaveProfileToMem
Hi Marti,
It seems to be a problem in the
function _cmsSaveProfileToMem. After saving profile into memory, the
profile handle would be changed. I got the segmentation fault, If I use it
after saving. After the debug I found
the cause. Two new line shoulb be added in this function to avoid the profile
handle change.
BOOL LCMSEXPORT
_cmsSaveProfileToMem(cmsHPROFILE hProfile, void *MemPtr,
size_t* BytesNeeded) { LPLCMSICCPROFILE Icc =
(LPLCMSICCPROFILE) (LPSTR) hProfile; LCMSICCPROFILE Keep;
CopyMemory(&Keep, Icc, sizeof(LCMSICCPROFILE));
_cmsSetSaveToMemory(Icc, NULL, 0);
//
Pass #1 does compute offsets
if (!SaveHeader(Icc)) return FALSE;
if (!SaveTagDirectory(Icc))
return FALSE;
if (!SaveTags(Icc)) return FALSE;
if (!MemPtr) {
// update BytesSaved so
caller knows how many bytes are needed for MemPtr *BytesNeeded = Icc ->UsedSpace;
CopyMemory(Icc, &Keep,
sizeof(LCMSICCPROFILE));
--> add
this line return TRUE; } if (*BytesNeeded < Icc
->UsedSpace) {
// need at least UsedSpace in MemPtr to
continue CopyMemory(Icc,
&Keep, sizeof(LCMSICCPROFILE));
--> add this line
return FALSE;
}
_cmsSetSaveToMemory(Icc, MemPtr,
*BytesNeeded);
// Pass #2 does save to file into
supplied stream
if (!SaveHeader(Icc))
goto CleanUp;
if (!SaveTagDirectory(Icc)) goto CleanUp;
if (!SaveTags(Icc))
goto CleanUp;
// update BytesSaved so caller knows
how many bytes put into stream
*BytesNeeded = Icc ->UsedSpace;
Icc
->Close(Icc); CopyMemory(Icc,
&Keep, sizeof(LCMSICCPROFILE)); return TRUE; CleanUp:
Icc ->Close(Icc);
CopyMemory(Icc, &Keep, sizeof(LCMSICCPROFILE)); return FALSE; }
Mit freundlichen
Grüßen
Wei
Wang (Development)
---------------------------------------------------- Compart
Systemhaus GmbH Otto-Lilienthal-Str. 38 71034 Böblingen
Tel: +49
7031 6205-457 Fax: +49 7031
6205-555 mailto:[EMAIL PROTECTED] http://www.compart.net
------------------------------------------------------------------------- Take
Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's
Techsay panel and you'll get the chance to share your opinions on IT &
business topics through brief surveys -- and earn
cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________ Lcms-user mailing
list Lcms-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lcms-user
|
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Lcms-user mailing list
Lcms-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lcms-user