Hello community,
here is the log from the commit of package perl-Glib-Object-Introspection for
openSUSE:Factory checked in at 2015-01-29 09:56:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Glib-Object-Introspection (Old)
and /work/SRC/openSUSE:Factory/.perl-Glib-Object-Introspection.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Glib-Object-Introspection"
Changes:
--------
---
/work/SRC/openSUSE:Factory/perl-Glib-Object-Introspection/perl-Glib-Object-Introspection.changes
2015-01-22 01:00:30.000000000 +0100
+++
/work/SRC/openSUSE:Factory/.perl-Glib-Object-Introspection.new/perl-Glib-Object-Introspection.changes
2015-01-29 09:56:54.000000000 +0100
@@ -1,0 +2,9 @@
+Wed Jan 28 11:04:11 UTC 2015 - [email protected]
+
+- Update to 0.027:
+ * Fix compilation problems when NOISY is defined.
+ * Move the handling of void record fields into the field
+ accessors.
+ * Rename a few variables for clarity.
+
+-------------------------------------------------------------------
Old:
----
Glib-Object-Introspection-0.026.tar.gz
New:
----
Glib-Object-Introspection-0.027.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Glib-Object-Introspection.spec ++++++
--- /var/tmp/diff_new_pack.nMeGKS/_old 2015-01-29 09:56:55.000000000 +0100
+++ /var/tmp/diff_new_pack.nMeGKS/_new 2015-01-29 09:56:55.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package perl-Glib-Object-Introspection
#
-# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
%define cpan_name Glib-Object-Introspection
Name: perl-Glib-Object-Introspection
-Version: 0.026
+Version: 0.027
Release: 0
Summary: GObject Introspection bindings for Perl
License: LGPL-2.1+
@@ -26,10 +26,10 @@
Url: https://metacpan.org/pod/Glib::Object::Introspection
Source:
https://cpan.metacpan.org/authors/id/X/XA/XAOC/%{cpan_name}-%{version}.tar.gz
BuildRequires: perl
+BuildRequires: perl-macros
BuildRequires: perl(ExtUtils::Depends)
BuildRequires: perl(ExtUtils::PkgConfig)
BuildRequires: perl(Glib) >= 1.180
-BuildRequires: perl-macros
BuildRequires: pkgconfig(gobject-introspection-1.0)
Requires: perl(Glib) >= 1.180
%{perl_requires}
++++++ Glib-Object-Introspection-0.026.tar.gz ->
Glib-Object-Introspection-0.027.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Glib-Object-Introspection-0.026/META.json
new/Glib-Object-Introspection-0.027/META.json
--- old/Glib-Object-Introspection-0.026/META.json 2014-12-26
06:47:34.000000000 +0100
+++ new/Glib-Object-Introspection-0.027/META.json 2015-01-28
00:46:51.000000000 +0100
@@ -66,5 +66,5 @@
"x_IRC" : "irc://irc.gimp.org/#gtk-perl",
"x_MailingList" : "https://mail.gnome.org/mailman/listinfo/gtk-perl-list"
},
- "version" : "0.026"
+ "version" : "0.027"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Glib-Object-Introspection-0.026/META.yml
new/Glib-Object-Introspection-0.027/META.yml
--- old/Glib-Object-Introspection-0.026/META.yml 2014-12-26
06:47:33.000000000 +0100
+++ new/Glib-Object-Introspection-0.027/META.yml 2015-01-28
00:46:51.000000000 +0100
@@ -36,4 +36,4 @@
homepage: http://gtk2-perl.sourceforge.net
license: http://www.gnu.org/licenses/lgpl-2.1.html
repository: git://git.gnome.org/perl-Glib-Object-Introspection
-version: '0.026'
+version: '0.027'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Glib-Object-Introspection-0.026/NEWS
new/Glib-Object-Introspection-0.027/NEWS
--- old/Glib-Object-Introspection-0.026/NEWS 2014-12-26 06:47:01.000000000
+0100
+++ new/Glib-Object-Introspection-0.027/NEWS 2015-01-28 00:42:30.000000000
+0100
@@ -1,3 +1,10 @@
+Overview of changes in Glib::Object::Introspection 0.027
+========================================================
+
+* Fix compilation problems when NOISY is defined
+* Move the handling of void record fields into the field accessors
+* Rename a few variables for clarity
+
Overview of changes in Glib::Object::Introspection 0.026
========================================================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Glib-Object-Introspection-0.026/gperl-i11n-field.c
new/Glib-Object-Introspection-0.027/gperl-i11n-field.c
--- old/Glib-Object-Introspection-0.026/gperl-i11n-field.c 2014-09-29
22:26:17.000000000 +0200
+++ new/Glib-Object-Introspection-0.027/gperl-i11n-field.c 2015-01-13
07:29:07.000000000 +0100
@@ -55,31 +55,52 @@
get_field (GIFieldInfo *field_info, gpointer mem, GITransfer transfer)
{
GITypeInfo *field_type;
+ GITypeTag field_tag;
GIBaseInfo *interface_info;
+ GIInfoType interface_type;
GIArgument value;
SV *sv = NULL;
field_type = g_field_info_get_type (field_info);
+ field_tag = g_type_info_get_tag (field_type);
interface_info = g_type_info_get_interface (field_type);
+ interface_type = interface_info
+ ? g_base_info_get_type (interface_info)
+ : GI_INFO_TYPE_INVALID;
- /* This case is not handled by g_field_info_set_field. */
+ /* Non-pointer structs are not handled by g_field_info_get_field. */
if (!g_type_info_is_pointer (field_type) &&
- g_type_info_get_tag (field_type) == GI_TYPE_TAG_INTERFACE &&
- g_base_info_get_type (interface_info) == GI_INFO_TYPE_STRUCT)
+ field_tag == GI_TYPE_TAG_INTERFACE &&
+ interface_type == GI_INFO_TYPE_STRUCT)
{
- gint offset;
- offset = g_field_info_get_offset (field_info);
- value.v_pointer = mem + offset;
+ gint offset = g_field_info_get_offset (field_info);
+ value.v_pointer = G_STRUCT_MEMBER_P (mem, offset);
sv = arg_to_sv (&value,
field_type,
GI_TRANSFER_NOTHING,
NULL);
- } else if (g_field_info_get_field (field_info, mem, &value)) {
+ }
+
+ /* Neither are void pointers. We retrieve the RV to the SV that
+ * set_field put into them. */
+ else if (field_tag == GI_TYPE_TAG_VOID &&
+ g_type_info_is_pointer (field_type))
+ {
+ gint offset = g_field_info_get_offset (field_info);
+ value.v_pointer = G_STRUCT_MEMBER (gpointer, mem, offset);
+ sv = value.v_pointer
+ ? newRV (value.v_pointer)
+ : &PL_sv_undef;
+ }
+
+ else if (g_field_info_get_field (field_info, mem, &value)) {
sv = arg_to_sv (&value,
field_type,
transfer,
NULL);
- } else {
+ }
+
+ else {
ccroak ("Could not get field '%s'",
g_base_info_get_name (field_info));
}
@@ -95,21 +116,21 @@
set_field (GIFieldInfo *field_info, gpointer mem, GITransfer transfer, SV *sv)
{
GITypeInfo *field_type;
+ GITypeTag field_tag;
GIBaseInfo *interface_info;
- GITypeTag tag;
- GIInfoType info_type;
+ GIInfoType interface_type;
GIArgument arg;
field_type = g_field_info_get_type (field_info);
- tag = g_type_info_get_tag (field_type);
+ field_tag = g_type_info_get_tag (field_type);
interface_info = g_type_info_get_interface (field_type);
- info_type = interface_info
+ interface_type = interface_info
? g_base_info_get_type (interface_info)
: GI_INFO_TYPE_INVALID;
/* Structs are not handled by g_field_info_set_field. */
- if (tag == GI_TYPE_TAG_INTERFACE &&
- info_type == GI_INFO_TYPE_STRUCT)
+ if (field_tag == GI_TYPE_TAG_INTERFACE &&
+ interface_type == GI_INFO_TYPE_STRUCT)
{
/* FIXME: No GIArgInfo and no GPerlI11nInvocationInfo here.
* What if the struct contains an object pointer, or a callback
@@ -122,10 +143,10 @@
* 'mem' */
arg.v_pointer = sv_to_struct (GI_TRANSFER_NOTHING,
interface_info,
- info_type,
+ interface_type,
sv);
size = g_struct_info_get_size (interface_info);
- g_memmove (mem + offset, arg.v_pointer, size);
+ g_memmove (G_STRUCT_MEMBER_P (mem, offset),
arg.v_pointer, size);
} else { /* Pointer */
GType gtype = get_gtype (interface_info);
if (g_type_is_a (gtype, G_TYPE_BOXED)) {
@@ -150,22 +171,21 @@
G_STRUCT_MEMBER (gpointer, mem, offset) =
sv_to_struct (GI_TRANSFER_NOTHING,
interface_info,
- info_type,
+ interface_type,
sv);
}
}
}
/* Neither are void pointers. We put an RV to the SV into them, which
- * goes hand in hand with what get_field() is doing above via
- * arg_to_sv(). */
- else if (tag == GI_TYPE_TAG_VOID &&
+ * goes hand in hand with what get_field() is doing above. */
+ else if (field_tag == GI_TYPE_TAG_VOID &&
g_type_info_is_pointer (field_type))
{
gint offset = g_field_info_get_offset (field_info);
- sv_to_arg (sv, &arg, NULL, field_type,
- transfer, TRUE, NULL);
- G_STRUCT_MEMBER (gpointer, mem, offset) = arg.v_pointer;
+ if (!gperl_sv_is_ref (sv))
+ ccroak ("Can only put references into void fields");
+ G_STRUCT_MEMBER (gpointer, mem, offset) = SvRV (sv);
}
else {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Glib-Object-Introspection-0.026/gperl-i11n-invoke-c.c
new/Glib-Object-Introspection-0.027/gperl-i11n-invoke-c.c
--- old/Glib-Object-Introspection-0.026/gperl-i11n-invoke-c.c 2014-09-29
22:26:17.000000000 +0200
+++ new/Glib-Object-Introspection-0.027/gperl-i11n-invoke-c.c 2015-01-13
07:29:07.000000000 +0100
@@ -350,8 +350,8 @@
dwarn ("C invoke: %s\n"
" n_args: %d, n_invoke_args: %d, n_given_args: %d\n"
" is_constructor: %d, is_method: %d\n",
- iinfo->is_vfunc ? g_base_info_get_name (info) :
g_function_info_get_symbol (info),
- iinfo->n_args, iinfo->n_invoke_args, iinfo->n_given_args,
+ iinfo->base.is_vfunc ? g_base_info_get_name (info) :
g_function_info_get_symbol (info),
+ iinfo->base.n_args, iinfo->n_invoke_args, iinfo->n_given_args,
iinfo->is_constructor, iinfo->is_method);
/* allocate enough space for all args in both the out and in lists.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Glib-Object-Introspection-0.026/gperl-i11n-invoke-perl.c
new/Glib-Object-Introspection-0.027/gperl-i11n-invoke-perl.c
--- old/Glib-Object-Introspection-0.026/gperl-i11n-invoke-perl.c
2014-09-29 22:26:17.000000000 +0200
+++ new/Glib-Object-Introspection-0.027/gperl-i11n-invoke-perl.c
2015-01-13 07:29:07.000000000 +0100
@@ -367,7 +367,7 @@
GITypeInfo *length_arg_type =
iinfo->base.arg_types[pos];
raw_to_arg (args[pos],
&iinfo->base.aux_args[pos], length_arg_type);
dwarn (" pos %d is array length =>
%"G_GSIZE_FORMAT"\n",
- pos, iinfo->aux_args[pos].v_size);
+ pos, iinfo->base.aux_args[pos].v_size);
}
}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Glib-Object-Introspection-0.026/gperl-i11n-marshal-arg.c
new/Glib-Object-Introspection-0.027/gperl-i11n-marshal-arg.c
--- old/Glib-Object-Introspection-0.026/gperl-i11n-marshal-arg.c
2014-09-29 22:26:17.000000000 +0200
+++ new/Glib-Object-Introspection-0.027/gperl-i11n-marshal-arg.c
2015-01-13 07:29:07.000000000 +0100
@@ -32,11 +32,6 @@
case GI_TYPE_TAG_VOID:
/* returns NULL if no match is found */
arg->v_pointer = sv_to_callback_data (sv, invocation_info);
- if (!arg->v_pointer && g_type_info_is_pointer (type_info)
- && gperl_sv_is_ref (sv))
- {
- arg->v_pointer = SvRV (sv);
- }
dwarn (" argument with no type information -> pointer %p\n",
arg->v_pointer);
break;
@@ -168,10 +163,6 @@
SV *sv = callback_data_to_sv (arg->v_pointer, iinfo);
if (sv) {
SvREFCNT_inc (sv);
- } else {
- if (arg->v_pointer && g_type_info_is_pointer (info)) {
- sv = newRV (arg->v_pointer);
- }
}
dwarn (" argument with no type information -> SV %p\n", sv);
return sv ? sv : &PL_sv_undef;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/Glib-Object-Introspection-0.026/lib/Glib/Object/Introspection.pm
new/Glib-Object-Introspection-0.027/lib/Glib/Object/Introspection.pm
--- old/Glib-Object-Introspection-0.026/lib/Glib/Object/Introspection.pm
2014-12-26 06:47:13.000000000 +0100
+++ new/Glib-Object-Introspection-0.027/lib/Glib/Object/Introspection.pm
2015-01-28 00:45:05.000000000 +0100
@@ -19,7 +19,7 @@
use warnings;
use Glib;
-our $VERSION = '0.026';
+our $VERSION = '0.027';
use Carp;
$Carp::Internal{(__PACKAGE__)}++;
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]