Merge branch '3562-bytes-null' into 'main'

gbytes: Squash data to `NULL` if length is zero

Closes #3562

See merge request GNOME/glib!4445
This commit is contained in:
Philip Withnall 2024-12-18 17:40:46 +00:00
commit bfeca8c13a
2 changed files with 9 additions and 1 deletions

View File

@ -128,7 +128,7 @@ g_bytes_new (gconstpointer data,
GBytesInline *bytes; GBytesInline *bytes;
bytes = g_malloc (sizeof *bytes + size); bytes = g_malloc (sizeof *bytes + size);
bytes->bytes.data = data != NULL ? bytes->inline_data : NULL; bytes->bytes.data = (data != NULL && size > 0) ? bytes->inline_data : NULL;
bytes->bytes.size = size; bytes->bytes.size = size;
bytes->bytes.free_func = NULL; bytes->bytes.free_func = NULL;
bytes->bytes.user_data = NULL; bytes->bytes.user_data = NULL;

View File

@ -457,6 +457,14 @@ test_null (void)
g_assert_null (data); g_assert_null (data);
g_assert_cmpuint (size, ==, 0); g_assert_cmpuint (size, ==, 0);
bytes = g_bytes_new ("some data which shouldn't be touched", 0);
g_assert_null (g_bytes_get_data (bytes, NULL));
data = g_bytes_unref_to_data (bytes, &size);
g_assert_null (data);
g_assert_cmpuint (size, ==, 0);
} }
static void static void