pointerBitLockMaskPtr

fnvoid * pointerBitLockMaskPtr(void * ptr, uint lockBit, bool set, size_t preserveMask, void * preservePtr = null)

This mangles ptr as [glib.global.pointerBitLock] and [glib.global.pointerBitUnlock] do.

Parameters

ptrthe pointer to mask
lockBitthe bit to set/clear. If set to G_MAXUINT, the lockbit is taken from preserve_ptr or ptr (depending on preserve_mask).
setwhether to set (lock) the bit or unset (unlock). This has no effect, if lock_bit is set to G_MAXUINT.
preserveMaskif non-zero, a bit-mask for preserve_ptr. The preserve_mask bits from preserve_ptr are set in the result. Note that the lock_bit bit will be always set according to set, regardless of preserve_mask and preserve_ptr (unless lock_bit is G_MAXUINT).
preservePtrif preserve_mask is non-zero, the bits from this pointer are set in the result.

Returns

the mangled pointer.