From ca57afda341a1187a9c367e5be71744979dd7a86 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Fri, 30 Sep 2011 11:19:38 +0200 Subject: spice_codegen: Always write a channels entry for an ifdef-ed channel Before this patch, if a channel is defined conditionally in spice.proto (because it depends on external headers like the smartcard channel), spice_codegen would write an entry to the channels array in spice_get_*_channel_parser which would only take up a place in the array if the ifdef condition is true, thus moving up all other intializers one place when it is not true. This was causing issues (crashes) when building spice-gtk with the combination of usbredir support enabled and smartcard support disabled. This patch fixes this by adding #else { NULL, 0 }, to the generated code. Thanks to coolper chen for reporting this! Signed-off-by: Hans de Goede --- python_modules/codegen.py | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'python_modules/codegen.py') diff --git a/python_modules/codegen.py b/python_modules/codegen.py index 6d53551..009cf95 100644 --- a/python_modules/codegen.py +++ b/python_modules/codegen.py @@ -328,6 +328,12 @@ class CodeWriter: self.write("#ifdef %s" % (name)).newline() self.indentation = indentation + def ifdef_else(self, name): + indentation = self.indentation + self.indentation = 0; + self.write("#else /* %s */" % (name)).newline() + self.indentation = indentation + def endif(self, name): indentation = self.indentation self.indentation = 0; -- cgit