ngl: fix bad writes
Running
GSK_RENDERER=ngl valgrind ./build/testsuite/reftests/gtk-reftest testsuite/reftests/treeview-crash-too-wide.ui
yields
==178170== Invalid write of size 4
==178170== at 0x4D1F5E7: gsk_ngl_render_job_visit_text_node (gsknglrenderjob.c:2674)
==178170== by 0x4D251E8: gsk_ngl_render_job_visit_node (gsknglrenderjob.c:3307)
==178170== by 0x4D256EF: gsk_ngl_render_job_visit_clipped_child (gsknglrenderjob.c:1390)
==178170== by 0x4D256EF: gsk_ngl_render_job_visit_clip_node (gsknglrenderjob.c:1430)
==178170== by 0x4D256EF: gsk_ngl_render_job_visit_node (gsknglrenderjob.c:3282)
==178170== by 0x4D251E8: gsk_ngl_render_job_visit_node (gsknglrenderjob.c:3307)
==178170== by 0x4D251E8: gsk_ngl_render_job_visit_node (gsknglrenderjob.c:3307)
==178170== by 0x4D251E8: gsk_ngl_render_job_visit_node (gsknglrenderjob.c:3307)
==178170== by 0x4D2808A: gsk_ngl_render_job_visit_transform_node (gsknglrenderjob.c:1771)
==178170== by 0x4D251E8: gsk_ngl_render_job_visit_node (gsknglrenderjob.c:3307)
==178170== by 0x4D29CC5: gsk_ngl_render_job_visit_rounded_clip_node (gsknglrenderjob.c:1493)
==178170== by 0x4D251E8: gsk_ngl_render_job_visit_node (gsknglrenderjob.c:3307)
==178170== by 0x4D2808A: gsk_ngl_render_job_visit_transform_node (gsknglrenderjob.c:1771)
==178170== by 0x4D2AA31: gsk_ngl_render_job_render (gsknglrenderjob.c:3650)
==178170== Address 0x159d69c0 is 0 bytes after a block of size 16,384 alloc'd
==178170== at 0x483FCE4: realloc (vg_replace_malloc.c:834)
==178170== by 0x5142A2F: g_realloc (in /usr/lib64/libglib-2.0.so.0.6704.0)
==178170== by 0x4D1F3A5: gsk_ngl_buffer_advance (gsknglbufferprivate.h:54)
==178170== by 0x4D1F3A5: gsk_ngl_command_queue_add_n_vertices (gsknglcommandqueueprivate.h:338)
==178170== by 0x4D1F3A5: gsk_ngl_render_job_visit_text_node (gsknglrenderjob.c:2591)
==178170== by 0x4D251E8: gsk_ngl_render_job_visit_node (gsknglrenderjob.c:3307)
==178170== by 0x4D256EF: gsk_ngl_render_job_visit_clipped_child (gsknglrenderjob.c:1390)
==178170== by 0x4D256EF: gsk_ngl_render_job_visit_clip_node (gsknglrenderjob.c:1430)
...
valgrind: m_mallocfree.c:303 (get_bszB_as_is): Assertion 'bszB_lo == bszB_hi' failed.
valgrind: Heap block lo/hi size mismatch: lo = 16448, hi = 1031274496.
This is probably caused by your program erroneously writing past the
end of a heap block and corrupting heap metadata. If you fix any
invalid writes reported by Memcheck, this assertion failure will
probably go away. Please try that before reporting this as a bug.