Summary: | NDEBUG in fitz/context.h prevents debug builds of user programs | ||
---|---|---|---|
Product: | MuPDF | Reporter: | Paul Irofti <bulibuta> |
Component: | fitz | Assignee: | MuPDF bugs <mupdf-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | robin.watts |
Priority: | P4 | ||
Version: | master | ||
Hardware: | PC | ||
OS: | All | ||
Customer: | Word Size: | --- |
Description
Paul Irofti
2017-08-14 01:55:39 UTC
Fixed in: commit 258f03a0a55c1aa802e1be47e463d8abc5096196 Author: Robin Watts <robin.watts@artifex.com> Date: Wed Nov 8 19:45:14 2017 +0000 Bug 698353: Avoid having our API depend on DEBUG/NDEBUG. Currently, our API uses static inlines for fz_lock and fz_unlock, the definitions for which depend on whether we build NDEBUG or not. This isn't ideal as it causes problems when people link a release binary with a debug lib (or vice versa). We really want to continue to use static inlines for the locking functions as used from MuPDF, as we hit them hard in the keep/drop functions. We therefore remove fz_lock/fz_unlock from the public API entirely. Accordingly, we move the fz_lock/fz_unlock static inlines into fitz-imp.h (an internal header), together with the fz_keep_.../fz_drop_... functions. We then have public fz_lock/fz_unlock functions for any external callers to use that are free of compilications. At the same time, to avoid another indirection, we change from holding the locking functions as a pointer to a struct to a struct itself. |