diff options
author | Michael Vrhel <michael.vrhel@artifex.com> | 2015-01-21 13:20:36 -0800 |
---|---|---|
committer | Michael Vrhel <michael.vrhel@artifex.com> | 2015-01-27 14:05:20 -0800 |
commit | 7584edc737ebb5277801a9e6b51eb5531fdf84d2 (patch) | |
tree | 957a9d2e3d25ea63f0592fe09f1887f297445c9f /platform/windows/mupdfwinrt/muctx.h | |
parent | b4e11b0b493c88e94a205643767e3c744ae17fde (diff) | |
download | mupdf-7584edc737ebb5277801a9e6b51eb5531fdf84d2.tar.xz |
Fix issue in display list Cache
The commit fc05b51c2b198dcc5553f6de1b8fb0e22e7d28ae cleaned up a few issues in the
display list cache but it introduced issues when multiple threads are using the lists.
In particular one thread could be using a list at the tail of the cache list, while
another thread is adding one to the cache, and removing the entry at the tail. The
solution is to make sure the ref count of the list is incremented when someone is using the list
and making sure that it gets decremented when they are done with the list.
Diffstat (limited to 'platform/windows/mupdfwinrt/muctx.h')
-rw-r--r-- | platform/windows/mupdfwinrt/muctx.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/platform/windows/mupdfwinrt/muctx.h b/platform/windows/mupdfwinrt/muctx.h index 16c44cd1..5b870543 100644 --- a/platform/windows/mupdfwinrt/muctx.h +++ b/platform/windows/mupdfwinrt/muctx.h @@ -101,6 +101,7 @@ public: fz_display_list * CreateDisplayListText(int page_num, int *width, int *height, fz_text_page **text, int *length); fz_display_list * CreateAnnotationList(int page_num); + void ReleaseDisplayLists(void *dlist, void *annotlist); int MeasurePage(int page_num, point_t *size); point_t MeasurePage(fz_page *page); unsigned int GetLinks(int page_num, sh_vector_link links_vec); |