Commit 549e7b0d authored by Aleksander Morgado's avatar Aleksander Morgado

garray: initialize allocated size in g_byte_array_new_take()

Internal allocation size (array->alloc) was being kept to 0 when a new
GByteArray was created from an already existing heap-allocated buffer.

Among other things, this was making g_byte_array_set_size() fully clear all
the buffer contents (not just the newly allocated memory) when
G_DEBUG=gc-friendly was being used...

  if (G_UNLIKELY (g_mem_gc_friendly))
    memset (array->data + array->alloc, 0, want_alloc - array->alloc);

https://bugzilla.gnome.org/show_bug.cgi?id=738170
parent de82b641
......@@ -1589,6 +1589,7 @@ g_byte_array_new_take (guint8 *data,
real->data = data;
real->len = len;
real->alloc = len;
return array;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment