To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=69741





------- Additional comments from [EMAIL PROTECTED] Wed Dec 20 10:59:57 -0800 
2006 -------
I'm working with "Herringbone" on this issue.  We have downloaded the OOo source
and looked over it to get a better understanding of how the system works and how
the error could manifest itself.

* m_aEmbeddedFonts (from pdfwriter_impl.cxx) has the list of embedded fonts that
needs to be rendered into the pdf.  If a font is missing from here, then it
would not make it into the pdf.  However, if a font is missing from
m_aEmbeddedFonts then the font dictionary references would probably be
sequential, which they are not in the corrupt pdf (although they remain 
ordered).

* PDFWriterImpl::emitFonts() iterates over the list of fonts (m_aEmbeddedFonts)
and calls PDFWriterImpl::emitEmbeddedFont on each font.  If emitEmbeddedFont
fails then the font is not added to aFontIDToObject, which populates the font
dictionary.

* PDFWriterImpl::emitEmbeddedFont(...) contains a giant if block whose execution
depends on the result of PspGraphics::DoGetEmbedFontData (by way of
PspGraphics::GetEmbedFontData).  DoGetEmbedFontData uses the PrintFontManager,
which is a singleton, to get information about the font.  If the
PrintFontManager fails, the problem would roll all the way back up the stack to
PDFWriterImpl::emitFonts(), which would then omit the font from being embedded
into the PDF.  There are several calls to the PrintFontManager in the
DoGetEmbdedFontData.

Since once the problem happens in an instance of OpenOffice, once it happens all
future requests are corrupt, and is fixed by a restart, it would make sense that
a singleton (PrintFontManager in this case) has gotten into a bad state.  We'll
start taking a closer look at the PrintFontManager, and the other case, which is
aEmbeddedFonts is not populated correctly in the first place.  Also, this would
not explain why we have only been able to reproduce the problem on a Solaris 
box.


---------------------------------------------------------------------
Please do not reply to this automatically generated notification from
Issue Tracker. Please log onto the website and enter your comments.
http://qa.openoffice.org/issue_handling/project_issues.html#notification

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to