Hi Richard, I'm taking a look on this. The cat's state may be caused by a serialization feature: a profile that has never been flushed to disk or memory, have a representation of internal data which may be different. Let me a day or two to do the necessary testing.
Regards Marti. BTW, the assert think is already fixed now. S'està citant Richard Hughes <hughsi...@gmail.com>: > On 26 July 2013 21:02, Richard Hughes <hughsi...@gmail.com> wrote: >> If it fails for other people I'll work on a small >> reproducer that illustrates the problem. > > Okay, reproducer attached. Simply save the profile and the C file in > the same place and do: > > gcc -o test test.c `pkg-config --cflags --libs lcms2` && ./test > > This is now called my "Schrödinger" bug. Basically, if you do these > exact things you can write a profile with a corrupt metadata tag: > > * cmsOpenProfileFromFile() or cmsOpenProfileFromMem() > * unused = cmsReadTag(p, cmsSigMetaTag) > * cmsSaveProfileToMem() > * Save memory blob to a file > > If you do cmsOpenProfileFromFile() on the new file and then > cmsReadTag(p, cmsSigMetaTag) you get: > > ERROR: Bad dictionary Name/Value > ERROR: Corrupted tag 'meta' > > It seems by "observing" the dictionary using cmsReadTag() somehow > corrupts it, so when it is saved it's then unreadable. If you don't do > the initial cmsReadTag(p, cmsSigMetaTag) or use cmsSaveProfileToFile() > then the bug does not manifest itself. I'm very confused, so any help > welcome, thanks! > > Richard. > ------------------------------------------------------------------------------ See everything from the browser to the database with AppDynamics Get end-to-end visibility with application monitoring from AppDynamics Isolate bottlenecks and diagnose root cause in seconds. Start your free trial of AppDynamics Pro today! http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk _______________________________________________ Lcms-user mailing list Lcms-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lcms-user