Automattic / Automattic/node-canvas
Segmentation fault when calling fillText
- Dominant language
- JavaScript
- Stars
- 10.7k
- Forks
- 1.2k
- Avg merge
- 4d 8h
- Merged PRs (30d)
- 1
Description
## Issue
Calling fillText on a 2d context always seems to lead to a segmentation fault. The below code runs fine on my machine if the fillText line is commented out.
```js
const { createCanvas, loadImage, registerFont } = require('canvas')
const fs = require('fs')
registerFont('arial.ttf', { family: 'Blergh' })
const canvas = createCanvas(200, 200)
const ctx = canvas.getContext('2d')
// Write "Awesome!"
ctx.font = '30px Blergh'
ctx.rotate(0.1)
ctx.fillText('Awesome!', 50, 100)
// Draw line under text
var text = ctx.measureText('Awesome!')
ctx.strokeStyle = 'rgba(0,0,0,0.5)'
ctx.beginPath()
ctx.lineTo(50, 102)
ctx.lineTo(50 + text.width, 102)
ctx.stroke()
var buf = canvas.toBuffer();
fs.writeFileSync("test.png", buf);
```
## This is what I see in GDB
```
#0 0x00007fff7609e6f2 in _platform_strlen () from /usr/lib/system/libsystem_platform.dylib
No symbol table info available.
#1 0x00007fff75f58bf6 in strdup () from /usr/lib/system/libsystem_c.dylib
No symbol table info available.
#2 0x0000000107ba95ad in _cairo_font_options_init_copy () from /usr/local/opt/cairo/lib/libcairo.2.dylib
No symbol table info available.
#3 0x0000000107bd8373 in _cairo_scaled_font_init () from /usr/local/opt/cairo/lib/libcairo.2.dylib
No symbol table info available.
#4 0x0000000107c0711b in _cairo_quartz_font_face_scaled_font_create () from /usr/local/opt/cairo/lib/libcairo.2.dylib
No symbol table info available.
#5 0x0000000106046bc5 in cairo_scaled_font_create () from /opt/X11/lib/libcairo.2.dylib
No symbol table info available.
#6 0x0000000106017bd2 in _cairo_gstate_ensure_scaled_font () from /opt/X11/lib/libcairo.2.dylib
No symbol table info available.
#7 0x0000000106018b4f in _cairo_gstate_glyph_path () from /opt/X11/lib/libcairo.2.dylib
No symbol table info available.
#8 0x0000000107bf40a4 in cairo_glyph_path () from /usr/local/opt/cairo/lib/libcairo.2.dylib
No symbol table info available.
#9 0x00000001047824d0 in pango_cairo_renderer_show_text_glyphs () from /usr/local/opt/pango/lib/libpangocairo-1.0.0.dylib
No symbol table info available.
#10 0x0000000104781a6c in pango_cairo_renderer_draw_glyph_item () from /usr/local/opt/pango/lib/libpangocairo-1.0.0.dylib
No symbol table info available.
#11 0x00000001047c0db4 in pango_renderer_draw_glyph_item () from /usr/local/opt/pango/lib/libpango-1.0.0.dylib
No symbol table info available.
#12 0x00000001047c080c in pango_renderer_draw_layout_line () from /usr/local/opt/pango/lib/libpango-1.0.0.dylib
No symbol table info available.
#13 0x00000001047c0306 in pango_renderer_draw_layout () from /usr/local/opt/pango/lib/libpango-1.0.0.dylib
No symbol table info available.
#14 0x00000001047815d5 in _pango_cairo_do_layout () from /usr/local/opt/pango/lib/libpangocairo-1.0.0.dylib
No symbol table info available.
#15 0x0000000104675aef in ?? () from /Users/jhelms/projects/NodeScraps/node_modules/canvas/build/Release/canvas.node
--Type for more, q to quit, c to continue without paging--
No symbol table info available.
#16 0x0000000105007b68 in ?? ()
No symbol table info available.
#17 0xffff935e00000000 in ?? ()
No symbol table info available.
#18 0x0000861000023000 in ?? ()
No symbol table info available.
#19 0x00000001060120c1 in _cairo_default_context_new_path () from /opt/X11/lib/libcairo.2.dylib
No symbol table info available.
#20 0x0000000104675865 in ?? () from /Users/jhelms/projects/NodeScraps/node_modules/canvas/build/Release/canvas.node
No symbol table info available.
#21 0x00000001041dd000 in ?? ()
No symbol table info available.
#22 0x000000010582b880 in ?? ()
No symbol table info available.
#23 0x000000010582d7f0 in ?? ()
No symbol table info available.
#24 0x000000010582b878 in ?? ()
No symbol table info available.
#25 0x0000000000000002 in ?? ()
No symbol table info available.
#26 0x4049000000000000 in ?? ()
No symbol table info available.
#27 0x00007ffeefbfea98 in ?? ()
No symbol table info available.
#28 0x4059000000000000 in ?? ()
No symbol table info available.
#29 0x0000000000000000 in ?? ()
No symbol table info available.
```
## Environment
* canvas@2.6.1
* node v14.0.0
* macOS 10.14.6
* cairo: stable 1.16.0
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.