<!DOCTYPE html><html><head>
<style type="text/css">body { font-family:'Helvetica'; font-size:12px}</style>
</head>
<body>En Fri, 31 Jul 2015 21:09:51 -0500, Martin Grajcar <maaartinus@gmail.com> escribió:<br><br><blockquote style="margin: 0 0 0.80ex; border-left: #0000FF 2px solid; padding-left: 1ex"><div dir="ltr">Hi Jesus,<div><br></div><div><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jul 1, 2015 at 10:52 PM, Jesus Reyes A. <span dir="ltr"><<a href="mailto:jesusrmx@gmail.com" target="_blank">jesusrmx@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div><div><div class="h5"><div>On Tue, 30 Jun 2015 05:55:43 -0500, Martin Grajcar <<a href="mailto:maaartinus@gmail.com" target="_blank">maaartinus@gmail.com</a>> wrote:<br></div><br><blockquote style="margin:0 0 0.80ex;border-left:#0000ff 2px solid;padding-left:1ex"><div dir="ltr">Hello,<div><br></div><div>apologies for reposting, but I can't see in the archives (and have received no answer).</div><div><div class="gmail_extra"><br></div><div class="gmail_extra">Are attachments forbidden here? I'm given you a link instead:</div><div class="gmail_extra"><a href="https://dl.dropboxusercontent.com/u/4971686/bitmap-crash.demo.zip" target="_blank">https://dl.dropboxusercontent.com/u/4971686/bitmap-crash.demo.zip</a><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">Regards, Martin.<br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><div class="gmail_quote">On Thu, Jun 25, 2015 at 10:57 AM, Martin Grajcar <span dir="ltr"><<a href="mailto:maaartinus@gmail.com" target="_blank">maaartinus@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div>My trivial Lazarus 1.4 application (and also our real application) crash whenever it prints a TBitMap on MAC. It happens in _platform_memmove$VARIANT$sse4 it tries to execute MOVDQA</div><div>and I thought it was an alignment problem, but it isn't.</div><div><br></div><div>I'm attaching my rather confusing demo. It does nothing but printing and seems to work fine on Linux, but crashes on OSX. Commenting out the StretchDraw prevents the crash. I have currently no access to the MAC, so I apologize for not including a minimal example.</div></div>
</blockquote></div><br></div></div></div></blockquote><br></div></div><div>I can reproduce it, and although the AV is easily fixed it seems printing bitmaps under Mac OS X it currently broken (loading a bitmap from a file doesn't produce AV but it not working anyway). I'm sure it used to work because I have PDF file generated using TPrinter and CUPS-PDF at some point.</div></div></blockquote><div><br></div><div>I haven't a chance to try it yet. Just in case it's non exactly trivial, how can the AV be fixed? I was only accessing the MAC over a bad connection, which made pretty everything complicated.</div><div><br></div><div>I'm also sure it used to work.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>Please submit a report so it wont be forgotten.</div></div></blockquote><div><br></div><div><a href="http://mantis.freepascal.org/view.php?id=28455">http://mantis.freepascal.org/view.php?id=28455</a> <br></div><div><br></div><div>Regards, Martin.</div><div><br></div><div><br></div></div></div></div>
</blockquote><div><br></div><div>The problem occurs because the bitmap is being freed before Printer.EndDoc. It is at this point that the bitmap data is used, but because it was already freed an AV occurs. I have actually fixed the problem, but in my current implementation resources are only be freed at program end. Which is not good if somebody are printing a lot. So I have not committed the fix, I have another plan and will try again soon.</div><div><br></div><div>In the mean time, the workaround it's easy (this is not the fix I mentioned before which would patch the LCL+Printer support). Just create the bitmap before Print.BeginDoc and free it after Print.EndDoc. That should work.</div><div><br></div><div>Jesus Reyes A. <br></div><br><div id="M2Signature"><div>-- </div><div>Usando el cliente de correo de Opera: <a href="http://www.opera.com/mail/">http://www.opera.com/mail/</a></div></div></body></html>