Automattic/node-canvas
View on GitHubAssertion failure when drawing after calling canvas.toBuffer() for PDF or SVG canvas
Open
#1195 opened on Jul 2, 2018
BugHelp wanted
Description
Steps to Reproduce
const canvas = createCanvas(200,200,"svg")
const ctx = canvas.getContext("2d");
canvas.toBuffer()
ctx.fillRect(10,10,100,100)
canvas.toBuffer()
results in
File: cairo-surface.c, Line 385
Expression: ! surface->finished
toBuffer has a call to cairo_surface_finish. After calling cairo_surface_finish() the only valid operations on a surface are getting and setting user, referencing and destroying, and flushing and finishing it.
We should at least catch that failure so the process doesn't crash. I don't see a way to actually let the canvas continue to be usable for drawing though. (Thought there might be an easy way to copy the content, but not seeing one.)
Your Environment
- Version of node-canvas (e.g. 1.4.0): master @ b10d204
- Environment (e.g. node 4.2.0 on Mac OS X 10.8): node 8.x, Win10 x64