From: Qu Wenruo <wqu@suse.com>
To: linux-btrfs@vger.kernel.org
Cc: osandov@osandov.com
Subject: [PATCH 2/4] btrfs-progs: libbtrfsutil: Convert to designated initialization for BtrfsUtilError_type
Date: Mon, 18 Nov 2019 14:30:50 +0800 [thread overview]
Message-ID: <20191118063052.56970-3-wqu@suse.com> (raw)
In-Reply-To: <20191118063052.56970-1-wqu@suse.com>
[BUG]
When compiling btrfs-progs with libbtrfsutil on a python3.8 system, we
got the following warning:
error.c:169:2: warning: initialization of ‘long int’ from ‘void *’ makes integer from pointer without a cast [-Wint-conversion]
169 | NULL, /* tp_print */
| ^~~~
error.c:169:2: note: (near initialization for ‘BtrfsUtilError_type.tp_vectorcall_offset’)
[CAUSE]
C definition of PyTypeObject changed in python 3.8.
Now at the old tp_print, we have tp_vectorcall_offset.
So we got above warning.
[FIX]
C has designated initialization, which can assign values to each named
member, without hard coding to match the offset.
Also, uninitialized values will be 0, so we can also save a lot of
unneeded "= 0" or "= NULL" lines.
Just use that awesome feature to avoid any future breakage.
Signed-off-by: Qu Wenruo <wqu@suse.com>
---
libbtrfsutil/python/error.c | 49 +++++++++----------------------------
1 file changed, 12 insertions(+), 37 deletions(-)
diff --git a/libbtrfsutil/python/error.c b/libbtrfsutil/python/error.c
index 0876c9b42c81..b2076e6bf4d6 100644
--- a/libbtrfsutil/python/error.c
+++ b/libbtrfsutil/python/error.c
@@ -162,41 +162,16 @@ static PyMemberDef BtrfsUtilError_members[] = {
PyTypeObject BtrfsUtilError_type = {
PyVarObject_HEAD_INIT(NULL, 0)
- "btrfsutil.BtrfsUtilError", /* tp_name */
- sizeof(BtrfsUtilError), /* tp_basicsize */
- 0, /* tp_itemsize */
- (destructor)BtrfsUtilError_dealloc, /* tp_dealloc */
- NULL, /* tp_print */
- NULL, /* tp_getattr */
- NULL, /* tp_setattr */
- NULL, /* tp_as_async */
- NULL, /* tp_repr */
- NULL, /* tp_as_number */
- NULL, /* tp_as_sequence */
- NULL, /* tp_as_mapping */
- NULL, /* tp_hash */
- NULL, /* tp_call */
- (reprfunc)BtrfsUtilError_str, /* tp_str */
- NULL, /* tp_getattro */
- NULL, /* tp_setattro */
- NULL, /* tp_as_buffer */
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE | Py_TPFLAGS_HAVE_GC, /* tp_flags */
- BtrfsUtilError_DOC, /* tp_doc */
- (traverseproc)BtrfsUtilError_traverse, /* tp_traverse */
- (inquiry)BtrfsUtilError_clear, /* tp_clear */
- NULL, /* tp_richcompare */
- 0, /* tp_weaklistoffset */
- NULL, /* tp_iter */
- NULL, /* tp_iternext */
- NULL, /* tp_methods */
- BtrfsUtilError_members, /* tp_members */
- NULL, /* tp_getset */
- NULL, /* tp_base */
- NULL, /* tp_dict */
- NULL, /* tp_descr_get */
- NULL, /* tp_descr_set */
- offsetof(BtrfsUtilError, os_error.dict), /* tp_dictoffset */
- NULL, /* tp_init */
- NULL, /* tp_alloc */
- BtrfsUtilError_new, /* tp_new */
+ .tp_name = "btrfsutil.BtrfsUtilError",
+ .tp_basicsize = sizeof(BtrfsUtilError),
+ .tp_dealloc = (destructor)BtrfsUtilError_dealloc,
+ .tp_str = (reprfunc)BtrfsUtilError_str,
+ .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE |
+ Py_TPFLAGS_HAVE_GC,
+ .tp_doc = BtrfsUtilError_DOC,
+ .tp_traverse = (traverseproc)BtrfsUtilError_traverse,
+ .tp_clear = (inquiry)BtrfsUtilError_clear,
+ .tp_members = BtrfsUtilError_members,
+ .tp_dictoffset = offsetof(BtrfsUtilError, os_error.dict),
+ .tp_new = BtrfsUtilError_new,
};
--
2.24.0
next prev parent reply other threads:[~2019-11-18 6:31 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-18 6:30 [PATCH 0/4] btrfs-progs: Compiling warning fixes for devel branch Qu Wenruo
2019-11-18 6:30 ` [PATCH 1/4] btrfs-progs: check/lowmem: Fix a false alert on uninitialized value Qu Wenruo
2019-11-18 6:30 ` Qu Wenruo [this message]
2019-11-18 6:30 ` [PATCH 3/4] btrfs-progs: libbtrfsutil: Convert to designated initialization for QgroupInherit_type Qu Wenruo
2019-11-18 6:30 ` [PATCH 4/4] btrfs-progs: libbtrfsutil: Convert to designated initialization for SubvolumeIterator_type Qu Wenruo
2019-11-18 8:23 ` [PATCH 0/4] btrfs-progs: Compiling warning fixes for devel branch Nikolay Borisov
2019-11-18 18:10 ` David Sterba
2019-11-18 18:27 ` Omar Sandoval
2019-11-18 23:47 ` Qu WenRuo
2019-11-19 20:38 ` Omar Sandoval
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191118063052.56970-3-wqu@suse.com \
--to=wqu@suse.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=osandov@osandov.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).