[poppler] Optional Content improvements and glib support (second try)

Carlos Garcia Campos carlosgc at gnome.org
Mon Nov 3 00:40:14 PST 2008


El dom, 02-11-2008 a las 20:18 +0100, Albert Astals Cid escribió:
> A Diumenge 26 Octubre 2008, Carlos Garcia Campos va escriure:
> > I've finally decided to add optional content support to the glib
> > bindings. Some of the issues I reported the first time I looked at OC
> > code are still there so here is a set of patches:
> >
> > 0001-Delete-the-optContent-object-if-it-s-invalid.patch
> >
> > This just adds a typical isOk() method to OCGs class so that the object
> > can be removed from memory when it's not valid
> 
> As far as i understand this is a memory optimization that does not need to go 
> to stable, right?

yes

> >
> > 0002-Minor-code-cleanup-and-consistency-issues.patch
> >
> > This patch was already approved by Brad indeed
> >  - Ref() -> getRef()
> >  - State() -> getState()
> >  - Name() -> getName()
> > quite trivial. It contains also the changes needed for the qt4 frontend,
> > but I don't have Qt installed so it's untested.
> >
> > 0004-Do-not-show-hidden-optional-content.patch
> >
> > Right now, optional content only works for XObjects. This patch add
> > support for any drawing operation, using a stack for the markedContent.
> 
> Just wondering if we could optimize things a bit more, i mean, for example in 
> Gfx::doAxialShFill if we are not going to draw could we just return at the 
> very beginning of the function?

The thing is that the spec says that any other operation except drawing
should still happens. Well, let me quote:

"Graphics state operations, such as setting the color, transformation matrix, and
clipping, are still applied. In addition, graphics state side effects that arise from
drawing operators are applied; in particular, the current text position is updat-
ed even for text wrapped in optional content. In other words, graphics state pa-
rameters that persist past the end of a marked-content section must be the
same whether the optional content is visible or not. For example, hiding a sec-
tion of optional content does not change the color of objects that do not belong
to the same optional content group."


> More important: In broken documents with more opEndMarkedContent than 
> opBeginMarkedContent the code will crash and in broken documents with less 
> opEndMarkedContent than opBeginMarkedContent the code will leak memory. Could 
> you fix that?

do you have any broken documents to reproduce the problems?

> Nitpicks: GBool contentIsHidden (void); is too C-ish in C++ you don't use 
> (void) for functions without parameters, please move to GBool 
> contentIsHidden(); (we don't put a space between function name and ( either)

Ok

> >
> > 0005-Check-annotation-optional-content-properties-before.patch
> >
> > This one adds support also for annotations
> >
> > 0006-Fix-memory-leaks-in-OptionalContent.patch
> >
> > Two memory leaks I reported and I had forgotten.
> 
> This one should be put on stable too, right?

yes

> Albert
> 
> >
> > 0003--glib-Show-action-titles-when-printing-the-index-in.patch
> > 0007--glib-Add-Optional-Content-support.patch
> > 0008--glib-demo-Add-Optional-Content-demo.patch
> >
> > These are glib only.


-- 
Carlos Garcia Campos
   elkalmail at yahoo.es
   carlosgc at gnome.org
   http://carlosgc.linups.org
PGP key: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x523E6462
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Esta parte del mensaje =?ISO-8859-1?Q?est=E1?= firmada
 digitalmente
Url : http://lists.freedesktop.org/archives/poppler/attachments/20081103/ba0a7b20/attachment.pgp 


More information about the poppler mailing list