summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2018-11-12 13:29:37 +0100
committerTor Andersson <tor.andersson@artifex.com>2018-11-12 17:30:04 +0100
commit8a8114cc9c3ae2f9bc866e15ea9f69778c63c3a3 (patch)
tree7f031c287ae0b628c913bbac3ba0dfbeec6ce573
parent643ff675ff47b5d3d21ebf6a30ffa844fe582f2e (diff)
downloadmupdf-8a8114cc9c3ae2f9bc866e15ea9f69778c63c3a3.tar.xz
Remove confusing flag define.
What's the difference between PDF_OBJ_FLAG_MARK and PDF_FLAGS_MARKED? PDF_OBJ_FLAG_MARK is used to flag an xref entry as one that we want to keep cached with the pdf_mark_xref/pdf_clear_xref_to_mark functions. PDF_FLAGS_MARKED is used to detect unwanted recursion in PDF structures. Renaming the xref_entry.flags field to xref_entry.marked should remove this source of potential confusion.
-rw-r--r--include/mupdf/pdf/xref.h7
-rw-r--r--source/pdf/pdf-xref.c4
2 files changed, 3 insertions, 8 deletions
diff --git a/include/mupdf/pdf/xref.h b/include/mupdf/pdf/xref.h
index 1924b635..0df1970d 100644
--- a/include/mupdf/pdf/xref.h
+++ b/include/mupdf/pdf/xref.h
@@ -41,7 +41,7 @@ typedef struct pdf_xref_entry_s pdf_xref_entry;
struct pdf_xref_entry_s
{
char type; /* 0=unset (f)ree i(n)use (o)bjstm */
- unsigned char flags; /* bit 0 = marked */
+ unsigned char marked; /* marked to keep alive with pdf_mark_xref */
unsigned short gen; /* generation / objstm index */
int num; /* original object number (for decryption after renumbering) */
int64_t ofs; /* file offset / objstm object number */
@@ -50,11 +50,6 @@ struct pdf_xref_entry_s
pdf_obj *obj; /* stored/cached object */
};
-enum
-{
- PDF_OBJ_FLAG_MARK = 1,
-};
-
typedef struct pdf_xref_subsec_s pdf_xref_subsec;
struct pdf_xref_subsec_s
diff --git a/source/pdf/pdf-xref.c b/source/pdf/pdf-xref.c
index 71b74b65..4409681e 100644
--- a/source/pdf/pdf-xref.c
+++ b/source/pdf/pdf-xref.c
@@ -2814,7 +2814,7 @@ void pdf_mark_xref(fz_context *ctx, pdf_document *doc)
pdf_xref_entry *entry = &sub->table[e];
if (entry->obj)
{
- entry->flags |= PDF_OBJ_FLAG_MARK;
+ entry->marked = 1;
}
}
}
@@ -2869,7 +2869,7 @@ void pdf_clear_xref_to_mark(fz_context *ctx, pdf_document *doc)
* been updated */
if (entry->obj != NULL && entry->stm_buf == NULL)
{
- if ((entry->flags & PDF_OBJ_FLAG_MARK) == 0 && pdf_obj_refs(ctx, entry->obj) == 1)
+ if (!entry->marked && pdf_obj_refs(ctx, entry->obj) == 1)
{
pdf_drop_obj(ctx, entry->obj);
entry->obj = NULL;