summaryrefslogtreecommitdiff
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
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.
-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 = {