[Spice-devel] [spice-common v2 12/13] quic: Remove undocumented 'no-inline' hack
Christophe Fergeau
cfergeau at redhat.com
Wed Aug 2 08:15:09 UTC 2017
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 at 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
More information about the Spice-devel
mailing list