diff options
| author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2013-03-24 19:59:00 -0400 |
|---|---|---|
| committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2015-07-05 14:19:19 -0400 |
| commit | 06e0c9012f1cc4552fcbd9fe484361974f9576a4 (patch) | |
| tree | c59b2f710a1ecab0a5cf6220eaedb415cb52c15e | |
| parent | 0c9613000ae845cdb61008f819b641ffa454aa5e (diff) | |
| download | python-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.c | 6 |
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 = { |
