summaryrefslogtreecommitdiff
path: root/base/gsrefct.h
Commit message (Collapse)AuthorAgeFilesLines
* Update postal address in file headersChris Liddell2023-04-041-3/+3
|
* Memento refcounting: Fix missed call to Memento on rc_increment.Robin Watts2022-01-261-0/+1
|
* OSS Fuzz 42916: Fix previous memory squeezing fix.Robin Watts2022-01-261-1/+1
| | | | | | Previously I was calling gs_free_object and relying on the rc count being zero. Now I properly set up the ref counting, and call rc_decrement.
* Update gs refcounting to work with Memento ref counting.Robin Watts2021-05-071-0/+1
| | | | | This means we can track the history of ref count changes for blocks within Memento.
* Add missing #include.Robin Watts2021-04-191-0/+1
|
* Update copyright to 2021Chris Liddell2021-03-151-1/+1
|
* Update copyright to 2020Chris Liddell2020-04-101-1/+1
|
* Bug 702151: Avoid truncating pointers in debug code.Robin Watts2020-03-171-1/+1
| | | | | | Introduce a PRI_INTPTR and use that to consistently display pointers. We avoid using %p, as that displays inconsistently between platforms. Sometimes it does 0x%x, sometimes just %x.
* Update source/header file copyright notice to 2019Chris Liddell2019-01-161-1/+1
|
* Fix header inclusions.Robin Watts2018-12-141-6/+1
| | | | | | | | | | | | | | Run a release build on a linux machine to make arch.h etc. Then run toolbin/headercompile.pl to test compiling each headerfile by itself. Resolve all the missing #includes, add missing repeated include guards and copyright statements. Also, update all the header dependencies in the makefiles. It is possible that the object dependencies in the makefiles can be simplified now, but that's a task for another day.
* Bug 697545 : Fix memory leak in rc_unshare_struct.Shailesh Mistry2018-04-191-1/+1
| | | | | | | | Rearrange order of macro so that the memory is freed even if the call to rc_alloc_struct_1 fails. Error created using :- MEMENTO_FAILAT=10044 ./membin/gpcl6 -sDEVICE=pbmraw -r300 -o /dev/null ./pcl/examples/owl.pcl
* Fix compiler warning with debug buildChris Liddell2018-04-191-1/+1
| | | | | | In a debug build, to facilitate logging/debugging, the rc_ajust() macro calls a function to trace the reference count changes. The client name (cname) parameter should be declared const to avoid a compiler warning.
* Make ICC profile management thread safe.Ray Johnston2018-03-281-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The change to ref_count of profiles needs to be protected by a lock if the profile ref_count could be changed by another thread. Also when decrementing the ref_count to 0, we cannot free the lock until after the profile has been unlocked. New routine gsicc_adjust_profile_rc replaces old (not threadsafe) function gsicc_profile_reference. Also add tracing "cname" to the RC_ADJUST_ macro to aid in debugging with -Z^ debug flag. Testing had revealed race conditions which are now fixed (eliminate use of semaphores). This also changes the gsicc_lcms2art.c interface functions to keep a list of transforms configured to have differing buffer formats that include alpha, planar IN/OUT, big_endian IN/OUT, bytes_per_component IN/OUT which are cloned as needed by threads. Change gscms_is_threadsafe to return "true" in gsicc_lcms2art.c TBD: If a link fails to build a thread may hang waiting for the link profile to become valid if it was not the thread that was building it. Not a new condition, but exposed when gscms_is_threadsafe returns true. TBD: Fix error handling / clean-up when links fail to build. Also not new, but is needed to prevent leaks, and possibly hang conditions.
* Update copyright notice with new head office address.Ken Sharp2018-01-301-3/+3
| | | | | | | | | Also update copyright dates. Remove gs_cmdl.ps as we no longer use it, and remove its entry from psfiles.htm. Remove xfonts.htm as this feature (xfont support) is long, long gone.
* Fix memento builds.Robin Watts2017-02-041-0/+2
|
* Make gs_imager_state == gs_state.Chris Liddell2016-06-061-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change how gstate initialisation is done: Previously we relied on the imager state being a subset of the gstate (thus assigning an imager state to a graphics state over wrote to the entries common to both, and didn't overwrite any already set graphics state specific entries). Making the imager and graphics states the same means that approach doesn't work, so this changes it to initialise the entries individually. Renames gsistate.c->gsgstate.c and gxistate.h->gxgstate.h Cleanup and fix the gs_state gc stuff. Uses different check for pre/post clist pdf14 device Previously, the code used "is_gstate" in the imager/graphics state object to determine if the code was being called pre or post clist (post clist would only ever have had an imager_state so is_gstate = false). With no imager state any more, that test would no longer work (and I am dubious about whether it was really safe, anyway). Other places check for the presence of a clist reader device in the pdf14 device structure - so use that here too. Adds initial (NULL) value for show_gstate pointer in gs_state. Removes the now pointless macro for the contents of the graphics state Changes function names that had "imager" to use "gstate" Removes the redundant 'is_state' flag Cleans up gs_(g)state_putdeviceparams(): Previously we had to similar routines: one took a graphics state, and used the device from the graphics state, the other took an imager state and the device as an explicit parameter. With the removal of the imager state, "merge" those two functions Replaces gs_state with gs_gstate It makes for less confusion as it really is a g(raphics)state
* Commit of build_consolidation branchChris Liddell2015-07-201-0/+206
Squashed into one commit (see branch for details of the evolution of the branch). This brings gpcl6 and gxps into the Ghostscript build system, and a shared set of graphics library object files for all the interpreters. Also, brings the same configuration options to the pcl and xps products as we have for Ghostscript.