http://bugs.winehq.org/show_bug.cgi?id=28709
Bug #: 28709 Summary: HelpNDoc crashes with builtin gdiplus Product: Wine Version: 1.3.30 Platform: x86 URL: http://www.helpndoc.com/ OS/Version: Linux Status: NEW Keywords: download Severity: normal Priority: P2 Component: gdiplus AssignedTo: wine-bugs@winehq.org ReportedBy: xerox_xerox2000@yahoo.co.uk Classification: Unclassified
Follow up of bug 28648
With native gdiplus the app starts fine.
Debuglog of the crash can be found here:
http://bugs.winehq.org/show_bug.cgi?id=28648#c4
http://bugs.winehq.org/show_bug.cgi?id=28709
--- Comment #1 from Vincent Povirk madewokherd@gmail.com 2011-10-13 16:11:43 CDT --- Try adding ImageFlagsEncoder to the entries in the codecs array (http://source.winehq.org/source/dlls/gdiplus/image.c#L3251). That won't fix the problem, but it might help figure out which encoder the program expects.
http://bugs.winehq.org/show_bug.cgi?id=28709
--- Comment #2 from Louis Lenders xerox_xerox2000@yahoo.co.uk 2011-10-13 16:36:32 CDT --- (In reply to comment #1)
Try adding ImageFlagsEncoder to the entries in the codecs array (http://source.winehq.org/source/dlls/gdiplus/image.c#L3251). That won't fix the problem, but it might help figure out which encoder the program expects.
hi vincent, i guess you meant ImageCodecFlagsEncoder (couldn't find ImageFlagsEncoder anywhere)
Apparently that's already enough to fix the crash. The app starts now builtin gdiplus!
http://bugs.winehq.org/show_bug.cgi?id=28709
--- Comment #3 from Vincent Povirk madewokherd@gmail.com 2011-10-13 16:51:26 CDT --- Which one(s) do you need to add it to?
http://bugs.winehq.org/show_bug.cgi?id=28709
--- Comment #4 from Louis Lenders xerox_xerox2000@yahoo.co.uk 2011-10-13 16:53:27 CDT --- (In reply to comment #3)
Which one(s) do you need to add it to?
I've added it to all where it wasn't present (see patch below). Do I need to pinpoint the exact one?
diff --git a/dlls/gdiplus/image.c b/dlls/gdiplus/image.c index 0e3848f..d359828 100644 --- a/dlls/gdiplus/image.c +++ b/dlls/gdiplus/image.c @@ -3277,7 +3277,7 @@ static const struct image_codec codecs[NUM_CODECS] = { /* FormatDescription */ jpeg_format, /* FilenameExtension */ jpeg_extension, /* MimeType */ jpeg_mimetype, - /* Flags */ ImageCodecFlagsDecoder | ImageCodecFlagsSupportBitmap | ImageCodecFlagsBuiltin, + /* Flags */ ImageCodecFlagsDecoder | ImageCodecFlagsSupportBitmap | ImageCodecFlagsBuiltin | ImageCodecFlagsEncoder, /* Version */ 1, /* SigCount */ 1, /* SigSize */ 2, @@ -3296,7 +3296,7 @@ static const struct image_codec codecs[NUM_CODECS] = { /* FormatDescription */ gif_format, /* FilenameExtension */ gif_extension, /* MimeType */ gif_mimetype, - /* Flags */ ImageCodecFlagsDecoder | ImageCodecFlagsSupportBitmap | ImageCodecFlagsBuiltin, + /* Flags */ ImageCodecFlagsDecoder | ImageCodecFlagsSupportBitmap | ImageCodecFlagsBuiltin | ImageCodecFlagsEncoder, /* Version */ 1, /* SigCount */ 1, /* SigSize */ 4, @@ -3334,7 +3334,7 @@ static const struct image_codec codecs[NUM_CODECS] = { /* FormatDescription */ emf_format, /* FilenameExtension */ emf_extension, /* MimeType */ emf_mimetype, - /* Flags */ ImageCodecFlagsDecoder | ImageCodecFlagsSupportVector | ImageCodecFlagsBuiltin, + /* Flags */ ImageCodecFlagsDecoder | ImageCodecFlagsSupportVector | ImageCodecFlagsBuiltin | ImageCodecFlagsEncoder, /* Version */ 1, /* SigCount */ 1, /* SigSize */ 4, @@ -3353,7 +3353,7 @@ static const struct image_codec codecs[NUM_CODECS] = { /* FormatDescription */ wmf_format, /* FilenameExtension */ wmf_extension, /* MimeType */ wmf_mimetype, - /* Flags */ ImageCodecFlagsDecoder | ImageCodecFlagsSupportVector | ImageCodecFlagsBuiltin, + /* Flags */ ImageCodecFlagsDecoder | ImageCodecFlagsSupportVector | ImageCodecFlagsBuiltin | ImageCodecFlagsEncoder, /* Version */ 1, /* SigCount */ 1, /* SigSize */ 2, @@ -3391,7 +3391,7 @@ static const struct image_codec codecs[NUM_CODECS] = { /* FormatDescription */ ico_format, /* FilenameExtension */ ico_extension, /* MimeType */ ico_mimetype, - /* Flags */ ImageCodecFlagsDecoder | ImageCodecFlagsSupportBitmap | ImageCodecFlagsBuiltin, + /* Flags */ ImageCodecFlagsDecoder | ImageCodecFlagsSupportBitmap | ImageCodecFlagsBuiltin | ImageCodecFlagsEncoder, /* Version */ 1, /* SigCount */ 1, /* SigSize */ 4,
http://bugs.winehq.org/show_bug.cgi?id=28709
--- Comment #5 from Vincent Povirk madewokherd@gmail.com 2011-10-13 16:56:49 CDT --- Most likely, the app is looking for a specific one, which we should implement. It would be nice to know which one.
http://bugs.winehq.org/show_bug.cgi?id=28709
--- Comment #6 from Louis Lenders xerox_xerox2000@yahoo.co.uk 2011-10-13 17:07:54 CDT --- (In reply to comment #5)
Most likely, the app is looking for a specific one, which we should implement. It would be nice to know which one.
See below. This is the minimal patch to get the app starting. Adding the flag to JPEG or GIF alone made the app still crash; needed to add the flag to both to work around the crash
diff --git a/dlls/gdiplus/image.c b/dlls/gdiplus/image.c index 0e3848f..f73b5cb 100644 --- a/dlls/gdiplus/image.c +++ b/dlls/gdiplus/image.c @@ -3277,7 +3277,7 @@ static const struct image_codec codecs[NUM_CODECS] = { /* FormatDescription */ jpeg_format, /* FilenameExtension */ jpeg_extension, /* MimeType */ jpeg_mimetype, - /* Flags */ ImageCodecFlagsDecoder | ImageCodecFlagsSupportBitmap | ImageCodecFlagsBuiltin, + /* Flags */ ImageCodecFlagsDecoder | ImageCodecFlagsSupportBitmap | ImageCodecFlagsBuiltin | ImageCodecFlagsEncoder, /* Version */ 1, /* SigCount */ 1, /* SigSize */ 2, @@ -3296,7 +3296,7 @@ static const struct image_codec codecs[NUM_CODECS] = { /* FormatDescription */ gif_format, /* FilenameExtension */ gif_extension, /* MimeType */ gif_mimetype, - /* Flags */ ImageCodecFlagsDecoder | ImageCodecFlagsSupportBitmap | ImageCodecFlagsBuiltin, + /* Flags */ ImageCodecFlagsDecoder | ImageCodecFlagsSupportBitmap | ImageCodecFlagsBuiltin | ImageCodecFlagsEncoder, /* Version */ 1, /* SigCount */ 1, /* SigSize */ 4,
http://bugs.winehq.org/show_bug.cgi?id=28709
Bruno Jesus 00cpxxx@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|http://www.helpndoc.com/ |https://web.archive.org/web | |/20110925144835/http://www. | |helpndoc.com/sites/default/ | |files/downloads/helpndoc-se | |tup.exe CC| |00cpxxx@gmail.com
http://bugs.winehq.org/show_bug.cgi?id=28709
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |focht@gmx.net Resolution|--- |DUPLICATE
--- Comment #7 from Anastasius Focht focht@gmx.net --- Hello folks,
dupe of bug 34356 (although this one is older the other one is the app 'collecting' bug with analysis)
--- snip --- $ pwd /home/focht/.wine/drive_c/Program Files/IBE Software/HelpNDoc 3
$ WINEDEBUG=+tid,+seh,+relay wine ./hnd3.exe >>log.txt 2>&1 ... 0024:Call gdiplus.GdiplusStartup(014f1630,01470030,014f1634) ret=006122e0 0024:Ret gdiplus.GdiplusStartup() retval=00000000 ret=006122e0 0024:Call gdiplus.GdipGetImageEncodersSize(0033fd84,0033fd80) ret=00613da7 0024:Ret gdiplus.GdipGetImageEncodersSize() retval=00000000 ret=00613da7 0024:Call gdiplus.GdipGetImageEncoders(00000004,00000130,01bbd060) ret=00613de4 0024:Ret gdiplus.GdipGetImageEncoders() retval=00000000 ret=00613de4 0024:Call gdiplus.GdipGetImageEncodersSize(0033fd84,0033fd80) ret=00613da7 0024:Ret gdiplus.GdipGetImageEncodersSize() retval=00000000 ret=00613da7 0024:Call gdiplus.GdipGetImageEncoders(00000004,00000130,01bbd060) ret=00613de4 0024:Ret gdiplus.GdipGetImageEncoders() retval=00000000 ret=00613de4 0024:Call gdiplus.GdipGetImageEncodersSize(0033fd84,0033fd80) ret=00613da7 0024:Ret gdiplus.GdipGetImageEncodersSize() retval=00000000 ret=00613da7 0024:Call gdiplus.GdipGetImageEncoders(00000004,00000130,01bbd060) ret=00613de4 0024:Ret gdiplus.GdipGetImageEncoders() retval=00000000 ret=00613de4 0024:Call gdiplus.GdipGetImageEncodersSize(0033fd84,0033fd80) ret=00613da7 0024:Ret gdiplus.GdipGetImageEncodersSize() retval=00000000 ret=00613da7 0024:Call gdiplus.GdipGetImageEncoders(00000004,00000130,01bbd060) ret=00613de4 0024:Ret gdiplus.GdipGetImageEncoders() retval=00000000 ret=00613de4 0024:Call gdiplus.GdipGetImageEncodersSize(0033fd84,0033fd80) ret=00613da7 0024:Ret gdiplus.GdipGetImageEncodersSize() retval=00000000 ret=00613da7 0024:Call gdiplus.GdipGetImageEncoders(00000004,00000130,01bbd060) ret=00613de4 0024:Ret gdiplus.GdipGetImageEncoders() retval=00000000 ret=00613de4 0024:Call user32.LoadStringW(00400000,0000fe62,0033dd40,00001000) ret=0040cba2 0024:Ret user32.LoadStringW() retval=00000024 ret=0040cba2 0024:Call KERNEL32.RaiseException(0eedfade,00000001,00000007,0033fd74) ret=00613fe6 0024:trace:seh:raise_exception code=eedfade flags=1 addr=0x7b83a977 ip=7b83a977 tid=0024 0024:trace:seh:raise_exception info[0]=00613fe6 0024:trace:seh:raise_exception info[1]=01c48670 0024:trace:seh:raise_exception info[2]=00000001 0024:trace:seh:raise_exception info[3]=00618048 0024:trace:seh:raise_exception info[4]=00618160 0024:trace:seh:raise_exception info[5]=0033fdac 0024:trace:seh:raise_exception info[6]=0033fd90 0024:trace:seh:raise_exception eax=7b8269e1 ebx=7b8bb000 ecx=00613fe6 edx=0033fcd4 esi=0033fd74 edi=0033fd40 0024:trace:seh:raise_exception ebp=0033fd18 esp=0033fcb4 cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00200283 --- snip ---
$ sha1sum helpndoc-setup.exe 924ae1880274816c6a15905ca7ae34ac1dd88a4f helpndoc-setup.exe
$ du -sh helpndoc-setup.exe 18M helpndoc-setup.exe
$ wine --version wine-1.7.11-275-ge0024ff
Regards
*** This bug has been marked as a duplicate of bug 34356 ***
https://bugs.winehq.org/show_bug.cgi?id=28709
Bruno Jesus 00cpxxx@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #8 from Bruno Jesus 00cpxxx@gmail.com --- Closing duplicate.