From 0de0b308b0567f6cd1c284f3c11678d6794df7b6 Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Fri, 12 Mar 2021 18:54:47 +0000 Subject: Use g_memdup2() with newer versions of GLib The g_memdup() function has been deprecated, so we should use the new g_memdup2() function if available. --- girepository/giconstantinfo.c | 10 +++++++++- tests/scanner/foo.c | 20 ++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/girepository/giconstantinfo.c b/girepository/giconstantinfo.c index c18a9d3f..a9d4cbc0 100644 --- a/girepository/giconstantinfo.c +++ b/girepository/giconstantinfo.c @@ -128,7 +128,15 @@ g_constant_info_get_value (GIConstantInfo *info, if (blob->type.flags.reserved == 0 && blob->type.flags.reserved2 == 0) { if (blob->type.flags.pointer) - value->v_pointer = g_memdup (&rinfo->typelib->data[blob->offset], blob->size); + { +#if GLIB_CHECK_VERSION (2, 67, 5) + gsize blob_size = blob->size; + + value->v_pointer = g_memdup2 (&rinfo->typelib->data[blob->offset], blob_size); +#else + value->v_pointer = g_memdup (&rinfo->typelib->data[blob->offset], blob->size); +#endif + } else { switch (blob->type.flags.tag) diff --git a/tests/scanner/foo.c b/tests/scanner/foo.c index e409e0a3..cd45362d 100644 --- a/tests/scanner/foo.c +++ b/tests/scanner/foo.c @@ -410,7 +410,11 @@ struct _RegressFooBoxed RegressFooBoxed * regress_foo_boxed_copy (const RegressFooBoxed *boxed) { +#if GLIB_CHECK_VERSION (2, 67, 5) + return (RegressFooBoxed *)g_memdup2 (boxed, sizeof (RegressFooBoxed)); +#else return (RegressFooBoxed *)g_memdup (boxed, sizeof (RegressFooBoxed)); +#endif } void @@ -453,7 +457,11 @@ struct _RegressFooDBusData RegressFooDBusData * regress_foo_dbus_data_copy (const RegressFooDBusData *boxed) { +#if GLIB_CHECK_VERSION (2, 67, 5) + return (RegressFooDBusData *)g_memdup2 (boxed, sizeof (RegressFooDBusData)); +#else return (RegressFooDBusData *)g_memdup (boxed, sizeof (RegressFooDBusData)); +#endif } void @@ -478,7 +486,11 @@ regress_foo_dbus_data_get_type (void) static RegressFooBRect * regress_foo_brect_copy (const RegressFooBRect *boxed) { +#if GLIB_CHECK_VERSION (2, 67, 5) + return (RegressFooBRect *)g_memdup2 (boxed, sizeof (RegressFooBRect)); +#else return (RegressFooBRect *)g_memdup (boxed, sizeof (RegressFooBRect)); +#endif } GType @@ -496,7 +508,11 @@ regress_foo_brect_get_type (void) static RegressFooBUnion * regress_foo_bunion_copy (const RegressFooBUnion *boxed) { +#if GLIB_CHECK_VERSION (2, 67, 5) + return (RegressFooBUnion *)g_memdup2 (boxed, sizeof (RegressFooBUnion)); +#else return (RegressFooBUnion *)g_memdup (boxed, sizeof (RegressFooBUnion)); +#endif } GType @@ -582,7 +598,11 @@ struct _RegressFooHidden RegressFooHidden * regress_foo_hidden_copy (const RegressFooHidden *boxed) { +#if GLIB_CHECK_VERSION (2, 67, 5) + return (RegressFooHidden *)g_memdup2 (boxed, sizeof (RegressFooHidden)); +#else return (RegressFooHidden *)g_memdup (boxed, sizeof (RegressFooHidden)); +#endif } void -- cgit v1.2.1 From cd325e9ac596942a7f8f37539d1bd5a5f92691c1 Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Fri, 12 Mar 2021 18:58:48 +0000 Subject: tests: Update line numbers for expected Regress GIR --- tests/scanner/Regress-1.0-expected.gir | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/scanner/Regress-1.0-expected.gir b/tests/scanner/Regress-1.0-expected.gir index 3a1764e8..c5044d99 100644 --- a/tests/scanner/Regress-1.0-expected.gir +++ b/tests/scanner/Regress-1.0-expected.gir @@ -1934,7 +1934,7 @@ uses a C sugar return type. c:identifier="regress_foo_object_append_new_stack_layer"> This shouldn't be scanned as a constructor. + line="806">This shouldn't be scanned as a constructor. @@ -2263,13 +2263,13 @@ uses a C sugar return type. transfer-ownership="full"> add to this rect + line="582">add to this rect source rectangle + line="583">source rectangle @@ -2279,7 +2279,7 @@ uses a C sugar return type. introspectable="0"> This is a C convenience constructor; we have to (skip) + line="563">This is a C convenience constructor; we have to (skip) it because it's not a boxed type. @@ -6071,7 +6071,7 @@ detection, and fixing it via annotations. c:identifier="regress_foo_not_a_constructor_new"> This should be scanned as a top-level function, and shouldn't cause + line="819">This should be scanned as a top-level function, and shouldn't cause a "Can't find matching type for constructor" warning. @@ -6084,7 +6084,7 @@ a "Can't find matching type for constructor" warning. introspectable="0"> This is a C convenience constructor; we have to (skip) + line="563">This is a C convenience constructor; we have to (skip) it because it's not a boxed type. @@ -6110,7 +6110,7 @@ it because it's not a boxed type. introspectable="0"> Does something that's only interesting from C and should not be + line="746">Does something that's only interesting from C and should not be exposed to language bindings. @@ -6120,7 +6120,7 @@ exposed to language bindings. a #RegressFooSkippable + line="748">a #RegressFooSkippable -- cgit v1.2.1