diff options
author | Michael Gratton <mike@vee.net> | 2020-06-25 16:56:46 +1000 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2020-06-25 10:20:20 +0200 |
commit | 9c1542ce35ce39aecdde00e3a3353f8c4efe7a7f (patch) | |
tree | 0b316d634e082598e595c35a2f496a245779eeb9 | |
parent | 8edd90dd26e3acf652ea4a24e288d7f9a57a5cb4 (diff) | |
download | vala-9c1542ce35ce39aecdde00e3a3353f8c4efe7a7f.tar.gz |
glib-2.0: data of GLib.Bytes is allowed to be null
Ctors accepting uint8 arrays accept null as 0-sized array and the
`get_data` may return null if the size of the buffer is 0.
https://developer.gnome.org/glib/stable/glib-Byte-Arrays.html
-rw-r--r-- | vapi/glib-2.0.vapi | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/vapi/glib-2.0.vapi b/vapi/glib-2.0.vapi index 839ceff98..2374928c6 100644 --- a/vapi/glib-2.0.vapi +++ b/vapi/glib-2.0.vapi @@ -5318,17 +5318,17 @@ namespace GLib { [Version (since = "2.32")] [CCode (cprefix = "g_bytes_", ref_function = "g_bytes_ref", unref_function = "g_bytes_unref", type_id = "G_TYPE_BYTES")] public class Bytes { - public Bytes ([CCode (array_length_type = "gsize")] uint8[] data); - public Bytes.take ([CCode (array_length_type = "gsize")] owned uint8[] data); - public Bytes.static ([CCode (array_length_type = "gsize")] uint8[] data); - public Bytes.with_free_func ([CCode (array_length_type = "gsize")] owned uint8[] data, GLib.DestroyNotify? free_func, void* user_data); + public Bytes ([CCode (array_length_type = "gsize")] uint8[]? data); + public Bytes.take ([CCode (array_length_type = "gsize")] owned uint8[]? data); + public Bytes.static ([CCode (array_length_type = "gsize")] uint8[]? data); + public Bytes.with_free_func ([CCode (array_length_type = "gsize")] owned uint8[]? data, GLib.DestroyNotify? free_func, void* user_data); public Bytes.from_bytes (GLib.Bytes bytes, size_t offset, size_t length); [CCode (cname = "g_bytes_new_with_free_func", simple_generics = true)] - public static Bytes new_with_owner<T> ([CCode (array_length_type = "gsize")] uint8[] data, [CCode (destroy_notify_pos = 1.9)] owned T? owner = null); + public static Bytes new_with_owner<T> ([CCode (array_length_type = "gsize")] uint8[]? data, [CCode (destroy_notify_pos = 1.9)] owned T? owner = null); [CCode (array_length_type = "gsize")] - public unowned uint8[] get_data (); + public unowned uint8[]? get_data (); public size_t get_size (); public uint hash (); public int compare (GLib.Bytes bytes2); @@ -5338,7 +5338,8 @@ namespace GLib { [CCode (cname = "_vala_g_bytes_get")] public uint8 get (int index) { - unowned uint8[] data = this.get_data (); + assert (index >= 0 && index < (int) this.get_size ()); + unowned uint8[] data = (!) this.get_data (); return data[index]; } |