mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-27 07:56:14 +01:00
Warn when classes/instances exceed the allowed size, if possible
It's impossible to check this if the library user is using g_type_register_static, but in that case their compiler should hopefully warn about the truncation. This fixes it for G_DEFINE_TYPE and friends, at least. Bug: https://bugzilla.gnome.org/show_bug.cgi?id=659916 Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk> Reviewed-by: Colin Walters <walters@verbum.org>
This commit is contained in:
parent
29a71915d8
commit
5bed8317ea
@ -2667,6 +2667,12 @@ g_type_register_static_simple (GType parent_type,
|
|||||||
{
|
{
|
||||||
GTypeInfo info;
|
GTypeInfo info;
|
||||||
|
|
||||||
|
/* Instances are not allowed to be larger than this. If you have a big
|
||||||
|
* fixed-length array or something, point to it instead.
|
||||||
|
*/
|
||||||
|
g_return_val_if_fail (class_size <= G_MAXUINT16, G_TYPE_INVALID);
|
||||||
|
g_return_val_if_fail (instance_size <= G_MAXUINT16, G_TYPE_INVALID);
|
||||||
|
|
||||||
info.class_size = class_size;
|
info.class_size = class_size;
|
||||||
info.base_init = NULL;
|
info.base_init = NULL;
|
||||||
info.base_finalize = NULL;
|
info.base_finalize = NULL;
|
||||||
|
Loading…
Reference in New Issue
Block a user