diff options
author | Chris Liddell <chris.liddell@artifex.com> | 2023-02-14 17:15:02 +0000 |
---|---|---|
committer | Chris Liddell <chris.liddell@artifex.com> | 2023-02-14 18:33:26 +0000 |
commit | 259931a3e22f678c48c5082ff91222a9b17b94ee (patch) | |
tree | 7273de7ece31b38c7fe431c1196c465ffcef3886 /pdf/pdf_mark.c | |
parent | 4edf4a7dc86e39a2882cd391936bb6a14694c65d (diff) | |
download | ghostpdl-259931a3e22f678c48c5082ff91222a9b17b94ee.tar.gz |
Use appropriate attributes for ref pointing to text enumerator
In order to facilitate exiting to the interpreter during text operations (such
as show, stringwidth etc) we store the text enumerator in an opaque Postscript
object on the execution stack.
Postscript refs have an attribute indicating what VM mode the object they
reference lives in (local, global or "system"). One of the places that uses that
is the garbage collector - if we're gc-ing local VM, we ignore refs with the
global attribute.
The problem is, we *always* allocate the text enumerator in local VM, but we
set the ref attributes with the current VM mode, meaning the enumerator would
never get marked by the garbager, and could be freed prematurely by the sweep.
Explicitly set the attributes to reflect the actual VM mode used to create
the enumerator.
Stems from work related to Bug 706368
Diffstat (limited to 'pdf/pdf_mark.c')
0 files changed, 0 insertions, 0 deletions