GDEF completely working now
diff --git a/src/hb-ot-layout-open-private.h b/src/hb-ot-layout-open-private.h
index 94ff209..482cf14 100644
--- a/src/hb-ot-layout-open-private.h
+++ b/src/hb-ot-layout-open-private.h
@@ -27,6 +27,10 @@
#ifndef HB_OT_LAYOUT_OPEN_PRIVATE_H
#define HB_OT_LAYOUT_OPEN_PRIVATE_H
+#ifndef HB_OT_LAYOUT_CC
+#error "This file should only be included from hb-ot-layout.c"
+#endif
+
#include "hb-ot-layout-private.h"
@@ -127,7 +131,7 @@
return &(*this)[i]; \
return NULL; \
} \
- inline const Type& get_##name_by_tag (hb_tag_t tag) const { \
+ inline const Type& get_##name##_by_tag (hb_tag_t tag) const { \
for (unsigned int i = 0; i < this->get_len (); i++) \
if (tag == (*this)[i].tag) \
return (*this)[i]; \
@@ -158,6 +162,7 @@
private: inline Type() {} /* cannot be instantiated */ \
public:
+/* TODO use a global nul-array for most Null's */
/* defines Null##Type as a safe nil instance of Type */
#define DEFINE_NULL_DATA(Type, size, data) \
static const unsigned char Null##Type##Data[size] = data; \
@@ -170,11 +175,11 @@
ASSERT_SIZE (Type, size); \
DEFINE_NULL_DATA (Type, size, data)
#define DEFINE_NULL_ALIAS(NewType, OldType) \
- static const NewType &Null##NewType = *(NewType *)Null##OldType##Data
+ /* XXX static */ const NewType &Null##NewType = *(NewType *)Null##OldType##Data
/* get_for_data() is a static class method returning a reference to an
* instance of Type located at the input data location. It's just a
- * fancy cast! */
+ * fancy, NULL-safe, cast! */
#define STATIC_DEFINE_GET_FOR_DATA(Type) \
static inline const Type& get_for_data (const char *data) { \
extern const Type &Null##Type; \