The following code shows this, although I could be misunderstanding the semantics of _from_pointer, I would think it tries to manage the cairo refcount. I would expect _from_pointer(..., incref=False) to mean: "steal the cairo reference and manage it with the lifetime of the 'cairo.Context' ", and _from_pointer(..., incref=True) to mean: "add a new cairo ref and manage it with the lifetime of the 'cairo.Context'".

```python
import gc
import cairocffi as cairo

surface = cairo.ImageSurface (cairo.FORMAT_ARGB32, 32, 32)
ctx1 = cairo.Context(surface)
assert cairo.cairo.cairo_get_reference_count(ctx1._pointer) == 1

ctx2 = cairo.Context._from_pointer(ctx1._pointer, incref=True)
assert cairo.cairo.cairo_get_reference_count(ctx1._pointer) == 2

addr = int(cairo.ffi.cast('uintptr_t', ctx1._pointer))

del ctx1
gc.collect()
# the following fails because because the cdata ptr is shared between contexts
# and won't be called until the last ref to _pointer is collected.
assert cairo.cairo.cairo_get_reference_count(ctx2._pointer) == 1

del ctx2
gc.collect()

# The following should crash but instead we still have a valid context
ctx3 = cairo.Context._from_pointer(cairo.ffi.cast('cairo_t*', addr), incref=False)
assert cairo.cairo.cairo_get_reference_count(ctx3._pointer) == 0
```