ngl: ensure vertices buffer allocates enough vertices

It's not guaranteed that a single power of two growth will be enough.

Fixes #3770
This commit is contained in:
Christian Hergert
2021-03-18 10:43:24 -07:00
parent 2ce92085e1
commit 56daad9c35

View File

@@ -32,7 +32,7 @@ typedef struct _GskNglBuffer
gsize buffer_len;
guint count;
GLenum target;
guint element_size;
gsize element_size;
} GskNglBuffer;
void gsk_ngl_buffer_init (GskNglBuffer *self,
@@ -50,7 +50,8 @@ gsk_ngl_buffer_advance (GskNglBuffer *buffer,
if G_UNLIKELY (buffer->buffer_pos + to_alloc > buffer->buffer_len)
{
buffer->buffer_len *= 2;
while (buffer->buffer_pos + to_alloc > buffer->buffer_len)
buffer->buffer_len *= 2;
buffer->buffer = g_realloc (buffer->buffer, buffer->buffer_len);
}