summaryrefslogtreecommitdiff
path: root/gs/base/gdevps.c
diff options
context:
space:
mode:
authorRay Johnston <ray.johnston@artifex.com>2011-08-18 17:01:43 -0700
committerRay Johnston <ray.johnston@artifex.com>2011-09-28 10:19:43 -0700
commitfe8d7b6aebfed3c724a860e31ff170764d5429dc (patch)
tree4d5becf42a9c872fcfc93336a50aab4677d3ef39 /gs/base/gdevps.c
parent02bdba18be7f2b78ca03d3f4126cef830eab28eb (diff)
Fix bug 692372: Add finalize for imager_state to ref_count decrement icc structs.
The graphics atates were being freed by the 'alloc_restore_all' done during gs_lib_finit but the icc_link_cache was not getting its ref_count decremented, so it never freed the semaphore which caused handles to be lost by windows. The rc_gsicc_profile_cache_free function is also fixed to save the 'next' pointer to avoid dereferencing freed memory. Note that we _should_ be able to call gs_imager_state_release to decrement the counts of ALL of the elements, but the ref counting of the other elements is _so_ badly maintained that some elements (dev_ht and halftone) are prematurely freed by this. This change is enough to fix the bug and pass cluster regression.
Diffstat (limited to 'gs/base/gdevps.c')
0 files changed, 0 insertions, 0 deletions