[spice-common v2 12/13] quic: Remove undocumented 'no-inline' hack

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <cfergeau@xxxxxxxxxx>
---
 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@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]