summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gmail.com>2021-03-12 19:08:03 +0000
committerEmmanuele Bassi <ebassi@gmail.com>2021-03-12 19:08:03 +0000
commit2fc5fd91259199699338a2f8d1198293eeafda1b (patch)
tree8509ef4aa382ac6d9b7807c5ae8549638aa120a6
parentea7d10ca8f05eadd93f557b3ff6718e2387bf4b7 (diff)
parentcd325e9ac596942a7f8f37539d1bd5a5f92691c1 (diff)
downloadgobject-introspection-2fc5fd91259199699338a2f8d1198293eeafda1b.tar.gz
Merge branch 'ebassi/pre-release' into 'master'
Ebassi/pre release See merge request GNOME/gobject-introspection!260
-rw-r--r--girepository/giconstantinfo.c10
-rw-r--r--tests/scanner/Regress-1.0-expected.gir16
-rw-r--r--tests/scanner/foo.c20
3 files changed, 37 insertions, 9 deletions
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/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.</doc>
c:identifier="regress_foo_object_append_new_stack_layer">
<doc xml:space="preserve"
filename="foo.c"
- line="786">This shouldn't be scanned as a constructor.</doc>
+ line="806">This shouldn't be scanned as a constructor.</doc>
<source-position filename="foo.h" line="581"/>
<return-value transfer-ownership="none">
<type name="FooOtherObject" c:type="RegressFooOtherObject*"/>
@@ -2263,13 +2263,13 @@ uses a C sugar return type.</doc>
transfer-ownership="full">
<doc xml:space="preserve"
filename="foo.c"
- line="566">add to this rect</doc>
+ line="582">add to this rect</doc>
<type name="FooRectangle" c:type="RegressFooRectangle*"/>
</instance-parameter>
<parameter name="r2" transfer-ownership="none">
<doc xml:space="preserve"
filename="foo.c"
- line="567">source rectangle</doc>
+ line="583">source rectangle</doc>
<type name="FooRectangle" c:type="const RegressFooRectangle*"/>
</parameter>
</parameters>
@@ -2279,7 +2279,7 @@ uses a C sugar return type.</doc>
introspectable="0">
<doc xml:space="preserve"
filename="foo.c"
- line="547">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.</doc>
<source-position filename="foo.h" line="357"/>
<return-value>
@@ -6071,7 +6071,7 @@ detection, and fixing it via annotations.</doc>
c:identifier="regress_foo_not_a_constructor_new">
<doc xml:space="preserve"
filename="foo.c"
- line="799">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.</doc>
<source-position filename="foo.h" line="221"/>
<return-value transfer-ownership="none">
@@ -6084,7 +6084,7 @@ a "Can't find matching type for constructor" warning.</doc>
introspectable="0">
<doc xml:space="preserve"
filename="foo.c"
- line="547">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.</doc>
<source-position filename="foo.h" line="357"/>
<return-value>
@@ -6110,7 +6110,7 @@ it because it's not a boxed type.</doc>
introspectable="0">
<doc xml:space="preserve"
filename="foo.c"
- line="726">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.</doc>
<source-position filename="foo.h" line="556"/>
<return-value transfer-ownership="none">
@@ -6120,7 +6120,7 @@ exposed to language bindings.</doc>
<parameter name="fs" transfer-ownership="none">
<doc xml:space="preserve"
filename="foo.c"
- line="728">a #RegressFooSkippable</doc>
+ line="748">a #RegressFooSkippable</doc>
<type name="FooSkippable" c:type="RegressFooSkippable"/>
</parameter>
</parameters>
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