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