summaryrefslogtreecommitdiff
path: root/systemd
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2013-03-24 19:59:00 -0400
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2015-07-05 14:19:19 -0400
commit06e0c9012f1cc4552fcbd9fe484361974f9576a4 (patch)
treec59b2f710a1ecab0a5cf6220eaedb415cb52c15e /systemd
parent0c9613000ae845cdb61008f819b641ffa454aa5e (diff)
downloadpython-systemd-06e0c9012f1cc4552fcbd9fe484361974f9576a4.tar.gz
Use initalization instead of explicit zeroing
Before, we would initialize many fields twice: first by filling the structure with zeros, and then a second time with the real values. We can let the compiler do the job for us, avoiding one copy. A downside of this patch is that text gets slightly bigger. This is because all zero() calls are effectively inlined: $ size build/.libs/systemd text data bss dec hex filename before 897737 107300 2560 1007597 f5fed build/.libs/systemd after 897873 107300 2560 1007733 f6075 build/.libs/systemd … actually less than 1‰. A few asserts that the parameter is not null had to be removed. I don't think this changes much, because first, it is quite unlikely for the assert to fail, and second, an immediate SEGV is almost as good as an assert.
Diffstat (limited to 'systemd')
-rw-r--r--systemd/_reader.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/systemd/_reader.c b/systemd/_reader.c
index d1188a1..a49527f 100644
--- a/systemd/_reader.c
+++ b/systemd/_reader.c
@@ -64,7 +64,7 @@ PyDoc_STRVAR(MonotonicType__doc__,
static PyStructSequence_Field MonotonicType_fields[] = {
{(char*) "timestamp", (char*) "Time"},
{(char*) "bootid", (char*) "Unique identifier of the boot"},
- {NULL, NULL}
+ {} /* Sentinel */
};
static PyStructSequence_Desc Monotonic_desc = {
@@ -898,7 +898,7 @@ static PyGetSetDef Reader_getsetters[] = {
NULL,
(char*) closed__doc__,
NULL},
- {NULL}
+ {} /* Sentinel */
};
static PyMethodDef Reader_methods[] = {
@@ -927,7 +927,7 @@ static PyMethodDef Reader_methods[] = {
{"test_cursor", (PyCFunction) Reader_test_cursor, METH_VARARGS, Reader_test_cursor__doc__},
{"query_unique", (PyCFunction) Reader_query_unique, METH_VARARGS, Reader_query_unique__doc__},
{"get_catalog", (PyCFunction) Reader_get_catalog, METH_NOARGS, Reader_get_catalog__doc__},
- {NULL} /* Sentinel */
+ {} /* Sentinel */
};
static PyTypeObject ReaderType = {