mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-22 10:12:10 +01:00
Work around msvc
Just don't bother with inlining for msvc.
This commit is contained in:
parent
73da2201d1
commit
5c4db967c4
@ -35,9 +35,33 @@
|
|||||||
* Since: 2.16
|
* Since: 2.16
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* We are providing an inline version of g_strcmp0, as well as a regular,
|
||||||
|
* exported library symbol.
|
||||||
|
*
|
||||||
|
* Our approach to this is following the 'C99 strategy' outlined in
|
||||||
|
* https://www.greenend.org.uk/rjk/tech/inline.html:
|
||||||
|
* Provide an inline definition in the header, and put an extern
|
||||||
|
* declaration into one source file (this one), to force the compiler
|
||||||
|
* to emit an instance of the function in this translation unit.
|
||||||
|
*
|
||||||
|
* Since this does not seem to work with msvc, we arrange things so that
|
||||||
|
* in the msvc case, we provide the usual extern declaration in the header
|
||||||
|
* and not expose the inline definition unless the header is included here,
|
||||||
|
* in which case we are defining away the inline to get a regular instance
|
||||||
|
* of the function.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
|
||||||
|
#define GLIB_INLINE
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
GLIB_AVAILABLE_IN_ALL
|
GLIB_AVAILABLE_IN_ALL
|
||||||
int g_strcmp0 (const char *str1, const char *str2);
|
int g_strcmp0 (const char *str1, const char *str2);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "gtestutils.h"
|
#include "gtestutils.h"
|
||||||
|
|
||||||
#include "gfileutils.h"
|
#include "gfileutils.h"
|
||||||
|
@ -238,10 +238,22 @@ typedef void (*GTestFixtureFunc) (gpointer fixture,
|
|||||||
} G_STMT_END
|
} G_STMT_END
|
||||||
#endif /* !G_DISABLE_ASSERT */
|
#endif /* !G_DISABLE_ASSERT */
|
||||||
|
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
|
||||||
|
GLIB_AVAILABLE_IN_ALL
|
||||||
|
int g_strcmp0 (const char *str1,
|
||||||
|
const char *str2);
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
#ifndef GLIB_INLINE
|
#ifndef GLIB_INLINE
|
||||||
#define GLIB_INLINE
|
#define GLIB_INLINE inline
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(GLIB_INLINE) || defined(__GTK_DOC_IGNORE__)
|
||||||
|
|
||||||
GLIB_INLINE int
|
GLIB_INLINE int
|
||||||
g_strcmp0 (const char *str1,
|
g_strcmp0 (const char *str1,
|
||||||
const char *str2)
|
const char *str2)
|
||||||
@ -253,6 +265,8 @@ g_strcmp0 (const char *str1,
|
|||||||
return strcmp (str1, str2);
|
return strcmp (str1, str2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
/* report performance results */
|
/* report performance results */
|
||||||
GLIB_AVAILABLE_IN_ALL
|
GLIB_AVAILABLE_IN_ALL
|
||||||
void g_test_minimized_result (double minimized_quantity,
|
void g_test_minimized_result (double minimized_quantity,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user