.circleci/config.yml | 2 +- src/hb-blob.cc | 5 ----- src/hb-buffer.h | 5 +++-- src/hb-common.h | 8 +++++--- src/hb.hh | 4 ++++ test/api/hb-test.h | 1 + test/api/test-blob.c | 2 +- test/api/test-c.c | 2 +- test/api/test-font.c | 16 ++++++++-------- test/api/test-multithread.c | 16 ++++++++-------- test/api/test-ot-color.c | 2 +- test/api/test-shape.c | 14 +++++++------- test/api/test-unicode.c | 10 +++++----- 13 files changed, 45 insertions(+), 42 deletions(-)
New commits: commit dc9b47ae87096d34d146e50e44e742a76861976f Author: Behdad Esfahbod <[email protected]> Date: Sun Sep 30 18:35:12 2018 +0200 [msan] Remove uninstrumented libraries diff --git a/.circleci/config.yml b/.circleci/config.yml index 8bf23250..4db6dceb 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -126,7 +126,7 @@ jobs: - run: update-alternatives --install "/usr/bin/ld" "ld" "/usr/bin/ld.lld" 10 - run: wget https://ftp.gnome.org/pub/gnome/sources/glib/2.28/glib-2.28.0.tar.bz2 && tar xf glib-2.28.0.tar.bz2 && cd glib-2.28.0 && ./autogen.sh || true && ./configure CPPFLAGS="-fsanitize=memory" LDFLAGS="-fsanitize=memory" CFLAGS="-fsanitize=memory" CXXFLAGS="-fsanitize=memory" LD=ld.lld CC=clang CXX=clang++ && make -j32 && make install && cd .. - run: wget http://download.savannah.gnu.org/releases/freetype/freetype-2.9.tar.bz2 && tar xf freetype-2.9.tar.bz2 && cd freetype-2.9 && ./autogen.sh && ./configure CPPFLAGS="-fsanitize=memory" LDFLAGS="-fsanitize=memory -O1 -g -fno-omit-frame-pointer" CFLAGS="-fsanitize=memory -O1 -g -fno-omit-frame-pointer" CXXFLAGS="-fsanitize=memory -O1 -g -fno-omit-frame-pointer" LD=ld.lld CC=clang CXX=clang++ && make -j32 && make install && cd .. - - run: CPPFLAGS="-fsanitize=memory" LDFLAGS="-fsanitize=memory -O1 -g -fno-omit-frame-pointer" CFLAGS="-fsanitize=memory -O1 -g -fno-omit-frame-pointer" CXXFLAGS="-fsanitize=memory -O1 -g -fno-omit-frame-pointer" LD=ld.lld CC=clang CXX=clang++ ./autogen.sh --with-freetype --with-glib --with-cairo --with-icu --with-graphite2 + - run: CPPFLAGS="-fsanitize=memory" LDFLAGS="-fsanitize=memory -O1 -g -fno-omit-frame-pointer" CFLAGS="-fsanitize=memory -O1 -g -fno-omit-frame-pointer" CXXFLAGS="-fsanitize=memory -O1 -g -fno-omit-frame-pointer" LD=ld.lld CC=clang CXX=clang++ ./autogen.sh --with-freetype --with-glib - run: make -j32 - run: MSAN_OPTIONS=exitcode=42 make check --ignore-errors # always run fail, till we fix msan "make check" isssue and remove --ignore-erros, then we can merge the two lines commit ad1c190ecfbac66ffeef69db769073a33331eed3 Author: Behdad Esfahbod <[email protected]> Date: Sun Sep 30 18:26:45 2018 +0200 Correct fix for glib-mkenum warning diff --git a/src/hb-buffer.h b/src/hb-buffer.h index 4ed458fb..4c746f40 100644 --- a/src/hb-buffer.h +++ b/src/hb-buffer.h @@ -93,8 +93,7 @@ typedef struct hb_glyph_info_t typedef enum { /*< flags >*/ HB_GLYPH_FLAG_UNSAFE_TO_BREAK = 0x00000001, - /*< private >*/ - HB_GLYPH_FLAG_DEFINED = 0x00000001 /* OR of all defined flags */ + HB_GLYPH_FLAG_DEFINED = 0x00000001 /*< skip >*/ /* OR of all defined flags */ } hb_glyph_flags_t; HB_EXTERN hb_glyph_flags_t commit 1dd1e56bf42af5b11afc3e34f78869e93d39867e Author: Behdad Esfahbod <[email protected]> Date: Sun Sep 30 18:25:58 2018 +0200 Revert "Fix glib-mkenum warning" This reverts commit 247756a7d89008ee6a7d1171dc07ba22454c6034. Was wrong. Right fix coming. diff --git a/src/hb-buffer.h b/src/hb-buffer.h index 7d60b4f1..4ed458fb 100644 --- a/src/hb-buffer.h +++ b/src/hb-buffer.h @@ -62,7 +62,9 @@ HB_BEGIN_DECLS typedef struct hb_glyph_info_t { hb_codepoint_t codepoint; + /*< private >*/ hb_mask_t mask; + /*< public >*/ uint32_t cluster; /*< private >*/ commit 3f08750fa6772e7e342b96192b84cb9963f7335b Author: Behdad Esfahbod <[email protected]> Date: Sun Sep 30 18:23:34 2018 +0200 Move _POSIX_SOURCE to hb.hh diff --git a/src/hb-blob.cc b/src/hb-blob.cc index f0952665..c1ed0f2a 100644 --- a/src/hb-blob.cc +++ b/src/hb-blob.cc @@ -25,11 +25,6 @@ * Red Hat Author(s): Behdad Esfahbod */ -/* http://www.oracle.com/technetwork/articles/servers-storage-dev/standardheaderfiles-453865.html */ -#ifndef _POSIX_C_SOURCE -#define _POSIX_C_SOURCE 200809L -#endif - #include "hb.hh" #include "hb-blob.hh" diff --git a/src/hb.hh b/src/hb.hh index 631592de..cfe6d68f 100644 --- a/src/hb.hh +++ b/src/hb.hh @@ -35,6 +35,10 @@ #include "config.h" #endif +#ifndef _POSIX_C_SOURCE +#define _POSIX_C_SOURCE 200809L +#endif + #include "hb.h" #define HB_H_IN #ifdef HAVE_OT commit 90dd255e570bf8ea3436e2f29242068845256e55 Author: Behdad Esfahbod <[email protected]> Date: Sun Sep 30 18:19:54 2018 +0200 Change _HB_SCRIPT_MAX_VALUE from 0xFFFFFFFF to 0x7FFFFFFF Fixes https://github.com/harfbuzz/harfbuzz/issues/504 diff --git a/src/hb-common.h b/src/hb-common.h index 37bbb2b1..6101d72f 100644 --- a/src/hb-common.h +++ b/src/hb-common.h @@ -340,13 +340,15 @@ typedef enum HB_SCRIPT_INVALID = HB_TAG_NONE, /* Dummy values to ensure any hb_tag_t value can be passed/stored as hb_script_t - * without risking undefined behavior. Include both a signed and unsigned max, - * since technically enums are int, and indeed, hb_script_t ends up being signed. + * without risking undefined behavior. We have two, for historical reasons. + * HB_TAG_MAX used to be unsigned, but that was invalid Ansi C, so was changed + * to _HB_SCRIPT_MAX_VALUE to be equal to HB_TAG_MAX_SIGNED as well. + * * See this thread for technicalities: * * https://lists.freedesktop.org/archives/harfbuzz/2014-March/004150.html */ - _HB_SCRIPT_MAX_VALUE = HB_TAG_MAX, /*< skip >*/ + _HB_SCRIPT_MAX_VALUE = HB_TAG_MAX_SIGNED, /*< skip >*/ _HB_SCRIPT_MAX_VALUE_SIGNED = HB_TAG_MAX_SIGNED /*< skip >*/ } hb_script_t; commit dcfcb950b81a2865ef01f5a69087264b79ed1bfd Author: Behdad Esfahbod <[email protected]> Date: Sun Sep 30 18:14:50 2018 +0200 [test] Fix -Wunused-parameter warnings diff --git a/test/api/hb-test.h b/test/api/hb-test.h index 307845f6..39d091b6 100644 --- a/test/api/hb-test.h +++ b/test/api/hb-test.h @@ -42,6 +42,7 @@ HB_BEGIN_DECLS /* Just in case */ #undef G_DISABLE_ASSERT +#define HB_UNUSED G_GNUC_UNUSED /* Misc */ diff --git a/test/api/test-blob.c b/test/api/test-blob.c index d566f4e9..7914a26c 100644 --- a/test/api/test-blob.c +++ b/test/api/test-blob.c @@ -195,7 +195,7 @@ fixture_init (fixture_t *fixture, gconstpointer user_data) } static void -fixture_finish (fixture_t *fixture, gconstpointer user_data) +fixture_finish (fixture_t *fixture, gconstpointer user_data HB_UNUSED) { hb_blob_destroy (fixture->blob); g_assert_cmpint (fixture->freed, ==, 1); diff --git a/test/api/test-c.c b/test/api/test-c.c index 4b43b837..78d6e974 100644 --- a/test/api/test-c.c +++ b/test/api/test-c.c @@ -58,7 +58,7 @@ #endif int -main (int argc, char **argv) +main (void) { return !*hb_shape_list_shapers (); } diff --git a/test/api/test-font.c b/test/api/test-font.c index 4a2393ec..4cd8dd8b 100644 --- a/test/api/test-font.c +++ b/test/api/test-font.c @@ -83,7 +83,7 @@ free_up (void *user_data) } static hb_blob_t * -get_table (hb_face_t *face, hb_tag_t tag, void *user_data) +get_table (hb_face_t *face HB_UNUSED, hb_tag_t tag, void *user_data HB_UNUSED) { if (tag == HB_TAG ('a','b','c','d')) return hb_blob_create (test_data, sizeof (test_data), HB_MEMORY_MODE_READONLY, NULL, NULL); @@ -210,10 +210,10 @@ test_fontfuncs_nil (void) } static hb_bool_t -contour_point_func1 (hb_font_t *font, void *font_data, - hb_codepoint_t glyph, unsigned int point_index, +contour_point_func1 (hb_font_t *font HB_UNUSED, void *font_data HB_UNUSED, + hb_codepoint_t glyph, unsigned int point_index HB_UNUSED, hb_position_t *x, hb_position_t *y, - void *user_data) + void *user_data HB_UNUSED) { if (glyph == 1) { *x = 2; @@ -230,10 +230,10 @@ contour_point_func1 (hb_font_t *font, void *font_data, } static hb_bool_t -contour_point_func2 (hb_font_t *font, void *font_data, +contour_point_func2 (hb_font_t *font, void *font_data HB_UNUSED, hb_codepoint_t glyph, unsigned int point_index, hb_position_t *x, hb_position_t *y, - void *user_data) + void *user_data HB_UNUSED) { if (glyph == 1) { *x = 6; @@ -246,9 +246,9 @@ contour_point_func2 (hb_font_t *font, void *font_data, } static hb_position_t -glyph_h_advance_func1 (hb_font_t *font, void *font_data, +glyph_h_advance_func1 (hb_font_t *font HB_UNUSED, void *font_data HB_UNUSED, hb_codepoint_t glyph, - void *user_data) + void *user_data HB_UNUSED) { if (glyph == 1) return 8; diff --git a/test/api/test-multithread.c b/test/api/test-multithread.c index b9efca9b..de288b6a 100644 --- a/test/api/test-multithread.c +++ b/test/api/test-multithread.c @@ -101,7 +101,7 @@ thread_func (void *data) return 0; } -void +static void test_body (void) { int i; diff --git a/test/api/test-ot-color.c b/test/api/test-ot-color.c index 22584d20..254f0155 100644 --- a/test/api/test-ot-color.c +++ b/test/api/test-ot-color.c @@ -99,6 +99,7 @@ static hb_face_t *cpal_v0 = NULL; static hb_face_t *cpal_v1 = NULL; +#if 0 #define assert_color_rgba(colors, i, r, g, b, a) G_STMT_START { \ const hb_ot_color_t *_colors = (colors); \ const size_t _i = (i); \ @@ -122,7 +123,6 @@ static hb_face_t *cpal_v1 = NULL; } G_STMT_END -#if 0 static void test_hb_ot_color_get_palette_count (void) { diff --git a/test/api/test-shape.c b/test/api/test-shape.c index 6232e738..2a0024d0 100644 --- a/test/api/test-shape.c +++ b/test/api/test-shape.c @@ -41,9 +41,9 @@ static const char test_data[] = "test\0data"; static hb_position_t -glyph_h_advance_func (hb_font_t *font, void *font_data, +glyph_h_advance_func (hb_font_t *font HB_UNUSED, void *font_data HB_UNUSED, hb_codepoint_t glyph, - void *user_data) + void *user_data HB_UNUSED) { switch (glyph) { case 1: return 10; @@ -54,10 +54,10 @@ glyph_h_advance_func (hb_font_t *font, void *font_data, } static hb_bool_t -glyph_func (hb_font_t *font, void *font_data, - hb_codepoint_t unicode, hb_codepoint_t variant_selector, +glyph_func (hb_font_t *font HB_UNUSED, void *font_data HB_UNUSED, + hb_codepoint_t unicode, hb_codepoint_t variation_selector HB_UNUSED, hb_codepoint_t *glyph, - void *user_data) + void *user_data HB_UNUSED) { switch (unicode) { case 'T': *glyph = 1; return TRUE; @@ -68,9 +68,9 @@ glyph_func (hb_font_t *font, void *font_data, } static hb_position_t -glyph_h_kerning_func (hb_font_t *font, void *font_data, +glyph_h_kerning_func (hb_font_t *font HB_UNUSED, void *font_data HB_UNUSED, hb_codepoint_t left, hb_codepoint_t right, - void *user_data) + void *user_data HB_UNUSED) { if (left == 1 && right == 2) return -2; diff --git a/test/api/test-unicode.c b/test/api/test-unicode.c index 88f12e77..4238ca99 100644 --- a/test/api/test-unicode.c +++ b/test/api/test-unicode.c @@ -645,18 +645,18 @@ typedef struct { } data_fixture_t; static void -data_fixture_init (data_fixture_t *f, gconstpointer user_data) +data_fixture_init (data_fixture_t *f, gconstpointer user_data HB_UNUSED) { f->data[0].value = MAGIC0; f->data[1].value = MAGIC1; } static void -data_fixture_finish (data_fixture_t *f, gconstpointer user_data) +data_fixture_finish (data_fixture_t *f HB_UNUSED, gconstpointer user_data HB_UNUSED) { } static void -test_unicode_subclassing_nil (data_fixture_t *f, gconstpointer user_data) +test_unicode_subclassing_nil (data_fixture_t *f, gconstpointer user_data HB_UNUSED) { hb_unicode_funcs_t *uf, *aa; @@ -678,7 +678,7 @@ test_unicode_subclassing_nil (data_fixture_t *f, gconstpointer user_data) } static void -test_unicode_subclassing_default (data_fixture_t *f, gconstpointer user_data) +test_unicode_subclassing_default (data_fixture_t *f, gconstpointer user_data HB_UNUSED) { hb_unicode_funcs_t *uf, *aa; @@ -697,7 +697,7 @@ test_unicode_subclassing_default (data_fixture_t *f, gconstpointer user_data) } static void -test_unicode_subclassing_deep (data_fixture_t *f, gconstpointer user_data) +test_unicode_subclassing_deep (data_fixture_t *f, gconstpointer user_data HB_UNUSED) { hb_unicode_funcs_t *uf, *aa; commit be0b2ed3162f465dbf44a0f018d4e2af5dcdf87c Author: Behdad Esfahbod <[email protected]> Date: Sun Sep 30 18:01:20 2018 +0200 More warning fixes diff --git a/test/api/test-multithread.c b/test/api/test-multithread.c index 7e357fd5..b9efca9b 100644 --- a/test/api/test-multithread.c +++ b/test/api/test-multithread.c @@ -33,8 +33,8 @@ #include <hb-ft.h> #include <hb-ot.h> -const char *text = "طرحنَما"; -const char *path = +static const char *text = "طرحنَما"; +static const char *path = #if defined(__linux__) "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf"; #elif defined(_WIN32) || defined(_WIN64) @@ -43,11 +43,11 @@ const char *path = "/Library/Fonts/Tahoma.ttf"; #endif -int num_threads = 30; -int num_iters = 200; +static int num_threads = 30; +static int num_iters = 200; -hb_font_t *font; -hb_buffer_t *ref_buffer; +static hb_font_t *font; +static hb_buffer_t *ref_buffer; pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; @@ -102,7 +102,7 @@ thread_func (void *data) } void -test_body () +test_body (void) { int i; int num_threads = 30; _______________________________________________ HarfBuzz mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/harfbuzz
