[pango] [HB] Use a function template instead of struct template for Null
- From: Behdad Esfahbod <behdad src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pango] [HB] Use a function template instead of struct template for Null
- Date: Wed, 21 Apr 2010 06:08:02 +0000 (UTC)
commit 9091e0f4d59b4f6dec4b0992f86ddcc141c0b919
Author: Behdad Esfahbod <behdad behdad org>
Date: Wed Apr 21 00:32:47 2010 -0400
[HB] Use a function template instead of struct template for Null
pango/opentype/hb-open-type-private.hh | 24 ++++++++++--------------
1 files changed, 10 insertions(+), 14 deletions(-)
---
diff --git a/pango/opentype/hb-open-type-private.hh b/pango/opentype/hb-open-type-private.hh
index 4dbff0d..832d2ad 100644
--- a/pango/opentype/hb-open-type-private.hh
+++ b/pango/opentype/hb-open-type-private.hh
@@ -61,27 +61,25 @@
/* Null objects */
/* Global nul-content Null pool. Enlarge as necessary. */
-static const void *NullPool[32 / sizeof (void *)];
+static const void *_NullPool[32 / sizeof (void *)];
/* Generic template for nul-content sizeof-sized Null objects. */
template <typename Type>
-struct Null
-{
- ASSERT_STATIC (sizeof (Type) <= sizeof (NullPool));
- static inline const Type &get () { return CONST_CAST (Type, *NullPool, 0); }
-};
+static inline const Type& Null () {
+ ASSERT_STATIC (sizeof (Type) <= sizeof (_NullPool));
+ return CONST_CAST (Type, *_NullPool, 0);
+}
/* Specializaiton for arbitrary-content arbitrary-sized Null objects. */
#define DEFINE_NULL_DATA(Type, size, data) \
-static const char _Null##Type[size] = data; \
+static const char _Null##Type[size + 1] = data; \
template <> \
-struct Null <Type> \
-{ \
- static inline const Type &get () { return CONST_CAST (Type, *_Null##Type, 0); } \
+inline const Type& Null<Type> () { \
+ return CONST_CAST (Type, *_Null##Type, 0); \
}
/* Accessor macro. */
-#define Null(Type) (Null<Type>::get())
+#define Null(Type) Null<Type>()
/* get_for_data() is a static class method returning a reference to an
@@ -397,9 +395,7 @@ struct Tag : ULONG
}
};
ASSERT_SIZE (Tag, 4);
-#define _NULL_TAG_INIT {' ', ' ', ' ', ' '}
-DEFINE_NULL_DATA (Tag, 4, _NULL_TAG_INIT);
-#undef _NULL_TAG_INIT
+DEFINE_NULL_DATA (Tag, 4, " ");
/* Glyph index number, same as uint16 (length = 16 bits) */
typedef USHORT GlyphID;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]