[Spice-devel] [PATCH spice-common] build: Remove FIXME_SERVER_SMARTCARD hack

Eduardo Lima (Etrunko) etrunko at redhat.com
Fri Mar 2 15:14:29 UTC 2018


When we remove the hacks in configure.ac and common/Makefile.am, two
errors pop out:

generated_server_demarshallers.c: In function ‘parse_msgc_smartcard_reader_add’:
generated_server_demarshallers.c:1985:30: error: ‘mem_size’ undeclared (first use in this function); did you mean ‘nw_size’?
     data = (uint8_t *)malloc(mem_size);
                              ^~~~~~~~
                              nw_size

First one is caused by a missing declaration of mem_size, so we use the
same condition that causes this code to be added to the check for the
need of mem_size variable declaration in demarshal.py.

generated_server_demarshallers.c:1985:30: note: each undeclared identifier is reported only once for each function it appears in
generated_server_demarshallers.c:1994:15: error: ‘VSCMsgReaderAdd {aka struct VSCMsgReaderAdd}’ has no member named ‘reader_name’
     memcpy(out->reader_name, in, reader_name__nelements);
               ^~

This second one is only a rename of 'reader_name' field to 'name', as
specified in the VSCMsgReaderAdd structure in file vscard_common.h.

Signed-off-by: Eduardo Lima (Etrunko) <etrunko at redhat.com>
---
 common/Makefile.am          | 2 --
 configure.ac                | 7 -------
 python_modules/demarshal.py | 2 +-
 spice.proto                 | 2 +-
 4 files changed, 2 insertions(+), 11 deletions(-)

diff --git a/common/Makefile.am b/common/Makefile.am
index 22aec80..ea15039 100644
--- a/common/Makefile.am
+++ b/common/Makefile.am
@@ -78,8 +78,6 @@ libspice_common_server_la_SOURCES =		\
 	$(SERVER_MARSHALLERS)			\
 	$(NULL)
 
-libspice_common_server_la_CFLAGS = -DFIXME_SERVER_SMARTCARD
-
 AM_CPPFLAGS =				\
 	-I$(top_srcdir)			\
 	-I$(top_builddir)		\
diff --git a/configure.ac b/configure.ac
index 3542161..5230223 100644
--- a/configure.ac
+++ b/configure.ac
@@ -63,11 +63,4 @@ AC_CONFIG_FILES([
   docs/Makefile
 ])
 
-AH_BOTTOM([
-/* argh.. this is evil */
-#if defined(FIXME_SERVER_SMARTCARD) && defined(USE_SMARTCARD)
-%:undef USE_SMARTCARD
-#endif
-])
-
 AC_OUTPUT
diff --git a/python_modules/demarshal.py b/python_modules/demarshal.py
index da87d44..9377869 100644
--- a/python_modules/demarshal.py
+++ b/python_modules/demarshal.py
@@ -1042,7 +1042,7 @@ def write_msg_parser(writer, message):
     msg_sizeof = message.sizeof()
 
     want_mem_size = (len(message.members) != 1 or message.members[0].is_fixed_nw_size()
-                         or not message.members[0].is_array())
+                         or not (message.members[0].is_array() and message.has_attr("nocopy")))
 
     writer.newline()
     if message.has_attr("ifdef"):
diff --git a/spice.proto b/spice.proto
index 76cfef2..6226c67 100644
--- a/spice.proto
+++ b/spice.proto
@@ -1416,7 +1416,7 @@ channel SmartcardChannel : BaseChannel {
     } @ctype(VSCMsgATR) atr = 101;
 
     message {
-	int8 reader_name[] @zero_terminated @nonnull;
+	int8 name[] @zero_terminated @nonnull;
     } @ctype(VSCMsgReaderAdd) reader_add = 101;
 } @ifdef(USE_SMARTCARD);
 
-- 
2.14.3



More information about the Spice-devel mailing list