csurface:Finish()
csurface:Finish() the only valid operations on a
surface are checking status, getting and setting user, referencing
and destroying, and flushing and finishing it.
Further drawing to the surface will not affect the
surface but will instead trigger a #CAIRO_STATUS_SURFACE_FINISHED
error.
When the last call to csurface:Free() decreases the
reference count to zero, Cairo will call csurface:Finish() if
it hasn't been called already, before freeing the resources
associated with the surface.