[cairo-commit] src/cairo-truetype-subset.c test/Makefile.sources test/truetype-tables.c
Chris Wilson
ickle at kemper.freedesktop.org
Tue Mar 3 03:23:34 PST 2009
src/cairo-truetype-subset.c | 15 ++++++++++
test/Makefile.sources | 1
test/truetype-tables.c | 63 --------------------------------------------
3 files changed, 15 insertions(+), 64 deletions(-)
New commits:
commit a8158d443e6a4bafae28a46b883cbdcfd5789eec
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date: Tue Mar 3 11:21:35 2009 +0000
[truetype] Move the sizeof asserts to compile time.
Eliminate the need for a runtime test on the sizeof the private structures
by performing the check at compile time. This was provoked by Ginn Chenn
noting that the test was including a private header.
diff --git a/src/cairo-truetype-subset.c b/src/cairo-truetype-subset.c
index d01b089..31e3971 100644
--- a/src/cairo-truetype-subset.c
+++ b/src/cairo-truetype-subset.c
@@ -94,6 +94,21 @@ struct _cairo_truetype_font {
};
+/*
+ * Test that the structs we define for TrueType tables have the
+ * correct size, ie. they are not padded.
+ */
+#define check(T, S) COMPILE_TIME_ASSERT (sizeof (T) == (S))
+check (tt_head_t, 54);
+check (tt_hhea_t, 36);
+check (tt_maxp_t, 32);
+check (tt_name_record_t, 12);
+check (tt_name_t, 18);
+check (tt_name_t, 18);
+check (tt_composite_glyph_t, 18);
+check (tt_glyph_data_t, 28);
+#undef check
+
static cairo_status_t
cairo_truetype_font_use_glyph (cairo_truetype_font_t *font,
unsigned short glyph,
diff --git a/test/Makefile.sources b/test/Makefile.sources
index eb118ac..f8c19fd 100644
--- a/test/Makefile.sources
+++ b/test/Makefile.sources
@@ -190,7 +190,6 @@ test_sources = \
transforms.c \
translate-show-surface.c \
trap-clip.c \
- truetype-tables.c \
twin.c \
unantialiased-shapes.c \
unbounded-operator.c \
diff --git a/test/truetype-tables.c b/test/truetype-tables.c
deleted file mode 100644
index bab119f..0000000
--- a/test/truetype-tables.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright © 2006 Red Hat, Inc.
- *
- * Permission to use, copy, modify, distribute, and sell this software
- * and its documentation for any purpose is hereby granted without
- * fee, provided that the above copyright notice appear in all copies
- * and that both that copyright notice and this permission notice
- * appear in supporting documentation, and that the name of
- * Red Hat, Inc. not be used in advertising or publicity pertaining to
- * distribution of the software without specific, written prior
- * permission. Red Hat, Inc. makes no representations about the
- * suitability of this software for any purpose. It is provided "as
- * is" without express or implied warranty.
- *
- * RED HAT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
- * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS, IN NO EVENT SHALL RED HAT, INC. BE LIABLE FOR ANY SPECIAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
- * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
- * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * Author: Behdad Esfahbod <behdad at behdad.org>
- */
-/*
- * Test that the structs we define for TrueType tables have the
- * correct size, ie. they are not padded.
- */
-
-#include "cairo-test.h"
-
-#include <cairo-truetype-subset-private.h>
-
-static cairo_test_status_t
-preamble (cairo_test_context_t *ctx)
-{
- cairo_test_status_t ret = CAIRO_TEST_SUCCESS;
-
-#define check(st, sz) \
- if (sizeof (st) != (sz)) { \
- cairo_test_log (ctx, "sizeof (%s): got %d, expected %d", #st, (int)sizeof (st), sz); \
- ret = CAIRO_TEST_FAILURE; \
- }
-#if CAIRO_HAS_FONT_SUBSET
- check (tt_head_t, 54);
- check (tt_hhea_t, 36);
- check (tt_maxp_t, 32);
- check (tt_name_record_t, 12);
- check (tt_name_t, 18);
- check (tt_name_t, 18);
- check (tt_composite_glyph_t, 18);
- check (tt_glyph_data_t, 28);
-#endif
-
- return ret;
-}
-
-CAIRO_TEST (truetype_tables,
- "Test that the size of TrueType table structs is correct",
- "ft, api", /* keywords */
- NULL, /* requirements */
- 0, 0,
- preamble, NULL)
More information about the cairo-commit
mailing list