The quic code goes through a function pointer in two places in order to
try to prevent the compiler from inlining code. This does not say why
we don't want that code to be inlined. Removing this hack even made the
resulting object file slightly smaller (600 bytes) on my fedora 26.

Signed-off-by: Christophe Fergeau <cferg...@redhat.com>
---
 common/quic.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/common/quic.c b/common/quic.c
index b331e09..c7884ea 100644
--- a/common/quic.c
+++ b/common/quic.c
@@ -399,12 +399,10 @@ static void __write_io_word(Encoder *encoder)
     *(encoder->io_now++) = encoder->io_word;
 }
 
-static void (*__write_io_word_ptr)(Encoder *encoder) = __write_io_word;
-
 static inline void write_io_word(Encoder *encoder)
 {
     if (encoder->io_now == encoder->io_end) {
-        __write_io_word_ptr(encoder); //disable inline optimizations
+        __write_io_word(encoder);
         return;
     }
     *(encoder->io_now++) = encoder->io_word;
@@ -452,13 +450,10 @@ static void __read_io_word(Encoder *encoder)
     encoder->io_next_word = GUINT32_FROM_LE(*(encoder->io_now++));
 }
 
-static void (*__read_io_word_ptr)(Encoder *encoder) = __read_io_word;
-
-
 static inline void read_io_word(Encoder *encoder)
 {
     if (encoder->io_now == encoder->io_end) {
-        __read_io_word_ptr(encoder); //disable inline optimizations
+        __read_io_word(encoder);
         return;
     }
     spice_assert(encoder->io_now < encoder->io_end);
-- 
2.13.3

_______________________________________________
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/spice-devel

Reply via email to