[HarfBuzz] harfbuzz-ng: Branch 'master' - 7 commits

Behdad Esfahbod behdad at kemper.freedesktop.org
Fri Jul 13 08:37:09 PDT 2012


 configure.ac                             |    6 ++++++
 src/Makefile.am                          |    2 +-
 src/check-c-linkage-decls.sh             |   10 +++++++++-
 src/check-internal-symbols.sh            |    8 +++++++-
 src/hb-common.h                          |    2 ++
 src/hb-fallback-shape-private.hh         |    6 ------
 src/hb-ft.cc                             |    4 ++--
 src/hb-ot-shape-complex-indic-machine.rl |    4 ----
 src/hb-private.hh                        |    2 +-
 9 files changed, 28 insertions(+), 16 deletions(-)

New commits:
commit 11c4ad439ef2b39a840f397a693b1ba643f52c21
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Jul 13 11:29:31 2012 -0400

    Add -Wcast-align

diff --git a/configure.ac b/configure.ac
index acfc2ea..cbabf83 100644
--- a/configure.ac
+++ b/configure.ac
@@ -69,6 +69,9 @@ if test "x$GCC" = "xyes"; then
 	# Hide inline methods
 	CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden"
 
+	# Assorted warnings
+	CXXFLAGS="$CXXFLAGS -Wcast-align"
+
 	case "$host" in
 		arm-*-*)
 			# Request byte alignment on arm
diff --git a/src/Makefile.am b/src/Makefile.am
index f7cf593..b981346 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -8,7 +8,7 @@ DISTCLEANFILES =
 MAINTAINERCLEANFILES =
 DISTCHECK_CONFIGURE_FLAGS = --enable-introspection
 
-# The following warning options are useful for debugging: -Wpadded -Wcast-align
+# The following warning options are useful for debugging: -Wpadded
 #AM_CXXFLAGS =
 
 lib_LTLIBRARIES = libharfbuzz.la
commit a98d0ab18624501ee60551304f2715361ac643da
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Jul 13 10:19:10 2012 -0400

    Make sure HB_BEGIN_DECLS / HB_END_DECLS is only used in public headers
    
    So we can use them to switch default visibility to internal if desired,
    and use these to make only declared symbols public.

diff --git a/src/check-c-linkage-decls.sh b/src/check-c-linkage-decls.sh
index e7c95ab..44cdfa0 100755
--- a/src/check-c-linkage-decls.sh
+++ b/src/check-c-linkage-decls.sh
@@ -7,12 +7,20 @@ test -z "$srcdir" && srcdir=.
 stat=0
 
 test "x$HBHEADERS" = x && HBHEADERS=`find . -maxdepth 1 -name 'hb*.h'`
+test "x$HBSOURCES" = x && HBSOURCES=`find . -maxdepth 1 -name 'hb*.h'`
 
 
 for x in $HBHEADERS; do
 	test -f $srcdir/$x && x=$srcdir/$x
 	if ! grep -q HB_BEGIN_DECLS "$x" || ! grep -q HB_END_DECLS "$x"; then
-		echo "Ouch, file $x does not HB_BEGIN_DECLS / HB_END_DECLS"
+		echo "Ouch, file $x does not have HB_BEGIN_DECLS / HB_END_DECLS, but it should"
+		stat=1
+	fi
+done
+for x in $HBSOURCES; do
+	test -f $srcdir/$x && x=$srcdir/$x
+	if grep -q HB_BEGIN_DECLS "$x" || grep -q HB_END_DECLS "$x"; then
+		echo "Ouch, file $x has HB_BEGIN_DECLS / HB_END_DECLS, but it shouldn't"
 		stat=1
 	fi
 done
diff --git a/src/hb-fallback-shape-private.hh b/src/hb-fallback-shape-private.hh
index 159456d..0ef155c 100644
--- a/src/hb-fallback-shape-private.hh
+++ b/src/hb-fallback-shape-private.hh
@@ -32,16 +32,10 @@
 #include "hb-shape.h"
 
 
-HB_BEGIN_DECLS
-
-
 HB_INTERNAL hb_bool_t
 _hb_fallback_shape (hb_font_t          *font,
 		    hb_buffer_t        *buffer,
 		    const hb_feature_t *features,
 		    unsigned int        num_features);
 
-
-HB_END_DECLS
-
 #endif /* HB_FALLBACK_SHAPE_PRIVATE_HH */
diff --git a/src/hb-ot-shape-complex-indic-machine.rl b/src/hb-ot-shape-complex-indic-machine.rl
index 93ca29a..7dcbb06 100644
--- a/src/hb-ot-shape-complex-indic-machine.rl
+++ b/src/hb-ot-shape-complex-indic-machine.rl
@@ -29,8 +29,6 @@
 
 #include "hb-private.hh"
 
-HB_BEGIN_DECLS
-
 %%{
   machine indic_syllable_machine;
   alphtype unsigned char;
@@ -110,6 +108,4 @@ find_syllables (const hb_ot_map_t *map, hb_buffer_t *buffer, hb_mask_t *mask_arr
   }%%
 }
 
-HB_END_DECLS
-
 #endif /* HB_OT_SHAPE_COMPLEX_INDIC_MACHINE_HH */
commit 5c5bc96216c9ad58243eb3ed27b253e237f08ebe
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Jul 13 10:15:37 2012 -0400

    Allow overriding HB_BEGIN_DECLS / HB_END_DECLS

diff --git a/src/hb-common.h b/src/hb-common.h
index 78bc43c..1728db7 100644
--- a/src/hb-common.h
+++ b/src/hb-common.h
@@ -33,6 +33,7 @@
 #ifndef HB_COMMON_H
 #define HB_COMMON_H
 
+#ifndef HB_BEGIN_DECLS
 # ifdef __cplusplus
 #  define HB_BEGIN_DECLS	extern "C" {
 #  define HB_END_DECLS		}
@@ -40,6 +41,7 @@
 #  define HB_BEGIN_DECLS
 #  define HB_END_DECLS
 # endif /* !__cplusplus */
+#endif
 
 HB_BEGIN_DECLS
 
commit ec5f5f0f8a1d5b3ff98452175bb4450a59897620
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Jul 13 10:00:42 2012 -0400

    Don't export inline methods

diff --git a/configure.ac b/configure.ac
index 0e2bbf6..acfc2ea 100644
--- a/configure.ac
+++ b/configure.ac
@@ -66,6 +66,9 @@ if test "x$GCC" = "xyes"; then
 	# Make sure we don't link to libstdc++
 	CXXFLAGS="$CXXFLAGS -fno-rtti -fno-exceptions"
 
+	# Hide inline methods
+	CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden"
+
 	case "$host" in
 		arm-*-*)
 			# Request byte alignment on arm
commit 50a4e78b530563917eb606ff3b96dcc9eed5b3ee
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Jul 13 09:48:39 2012 -0400

    Check for exported weak symbols
    
    Ouch, all our C++ inline functions are being exported (weakly) already.
    Fix coming.

diff --git a/src/check-internal-symbols.sh b/src/check-internal-symbols.sh
index ba6a45d..729b086 100755
--- a/src/check-internal-symbols.sh
+++ b/src/check-internal-symbols.sh
@@ -14,12 +14,18 @@ else
 	exit 77
 fi
 
+if which c++filt 2>/dev/null >/dev/null; then
+	cplusplusfilt=c++filt
+else
+	cplusplusfilt=cat
+fi
+
 tested=false
 for suffix in so; do
 	so=.libs/libharfbuzz.$suffix
 	if test -f "$so"; then
 		echo "Checking that we are not exposing internal symbols"
-		if nm $so | grep ' T ' | grep -v ' T _fini\>\| T _init\>\| T hb_'; then
+		if nm $so | grep ' [TW] ' | $cplusplusfilt | grep -v ' T _fini\>\| T _init\>\| T hb_'; then
 			echo "Ouch, internal symbols exposed"
 			stat=1
 		fi
commit b5aeb95afeb13a66177caada9f5d5ad4cddbd35f
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Jul 13 09:45:54 2012 -0400

    Make hb_in_range() static

diff --git a/src/hb-private.hh b/src/hb-private.hh
index 70b87c9..29cd68c 100644
--- a/src/hb-private.hh
+++ b/src/hb-private.hh
@@ -718,7 +718,7 @@ struct hb_auto_trace_t<0> {
  * Checks for lo <= u <= hi but with an optimization if lo and hi
  * are only different in a contiguous set of lower-most bits.
  */
-template <typename T> inline bool
+template <typename T> static inline bool
 hb_in_range (T u, T lo, T hi)
 {
   if ( ((lo^hi) & lo) == 0 &&
commit 271c8f89075607c689938b4f5e60323d9a1acd70
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Jul 13 09:32:30 2012 -0400

    Minor

diff --git a/src/hb-ft.cc b/src/hb-ft.cc
index 90937ca..3717269 100644
--- a/src/hb-ft.cc
+++ b/src/hb-ft.cc
@@ -233,7 +233,7 @@ hb_ft_get_glyph_contour_point (hb_font_t *font HB_UNUSED,
 }
 
 static hb_bool_t
-hb_ft_get_glyph_name (hb_font_t *font,
+hb_ft_get_glyph_name (hb_font_t *font HB_UNUSED,
 		      void *font_data,
 		      hb_codepoint_t glyph,
 		      char *name, unsigned int size,
@@ -249,7 +249,7 @@ hb_ft_get_glyph_name (hb_font_t *font,
 }
 
 static hb_bool_t
-hb_ft_get_glyph_from_name (hb_font_t *font,
+hb_ft_get_glyph_from_name (hb_font_t *font HB_UNUSED,
 			   void *font_data,
 			   const char *name, int len, /* -1 means nul-terminated */
 			   hb_codepoint_t *glyph,



More information about the HarfBuzz mailing list