[HarfBuzz] harfbuzz: Branch 'master'

Behdad Esfahbod behdad at kemper.freedesktop.org
Thu Nov 29 19:36:35 UTC 2018


 src/hb-machinery.hh     |    2 +-
 src/hb-ot-cmap-table.hh |    3 ++-
 src/hb-set.hh           |    4 ++--
 src/hb-subset.cc        |    2 +-
 src/hb-vector.hh        |    4 ++--
 5 files changed, 8 insertions(+), 7 deletions(-)

New commits:
commit 861bc75349257f74c12b261abfcd5ab9e2f04863
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Thu Nov 29 14:34:44 2018 -0500

    [vector] Make pointer cast explicit
    
    Too bad this doesn't help MSVC 2008 build, as explicit operators are
    C++11.

diff --git a/src/hb-machinery.hh b/src/hb-machinery.hh
index 39e96293..5f3d153e 100644
--- a/src/hb-machinery.hh
+++ b/src/hb-machinery.hh
@@ -658,7 +658,7 @@ struct Supplier
   }
   inline Supplier (const hb_vector_t<Type> *v)
   {
-    head = *v;
+    head = (const Type *) *v;
     len = v->len;
     stride = sizeof (Type);
   }
diff --git a/src/hb-ot-cmap-table.hh b/src/hb-ot-cmap-table.hh
index cdc610be..a2e611c9 100644
--- a/src/hb-ot-cmap-table.hh
+++ b/src/hb-ot-cmap-table.hh
@@ -495,7 +495,8 @@ struct CmapSubtableLongSegmented
   {
     TRACE_SERIALIZE (this);
     if (unlikely (!c->extend_min (*this))) return_trace (false);
-    Supplier<CmapSubtableLongGroup> supplier (group_data, group_data.len);
+    Supplier<CmapSubtableLongGroup> supplier ((const OT::CmapSubtableLongGroup*) group_data,
+					      group_data.len);
     if (unlikely (!groups.serialize (c, supplier, group_data.len))) return_trace (false);
     return true;
   }
diff --git a/src/hb-set.hh b/src/hb-set.hh
index 100bdb2a..a3beeef1 100644
--- a/src/hb-set.hh
+++ b/src/hb-set.hh
@@ -375,8 +375,8 @@ struct hb_set_t
     if (!resize (count))
       return;
     population = other->population;
-    memcpy (pages, other->pages, count * pages.item_size);
-    memcpy (page_map, other->page_map, count * page_map.item_size);
+    memcpy ((void *) pages, (const void *) other->pages, count * pages.item_size);
+    memcpy ((void *) page_map, (const void *) other->page_map, count * page_map.item_size);
   }
 
   inline bool is_equal (const hb_set_t *other) const
diff --git a/src/hb-subset.cc b/src/hb-subset.cc
index a3917b86..14d4774c 100644
--- a/src/hb-subset.cc
+++ b/src/hb-subset.cc
@@ -77,7 +77,7 @@ _subset2 (hb_subset_plan_t *plan)
       return false;
     }
   retry:
-    hb_serialize_context_t serializer (buf, buf_size);
+    hb_serialize_context_t serializer ((void *) buf, buf_size);
     hb_subset_context_t c (plan, &serializer);
     result = table->subset (&c);
     if (serializer.ran_out_of_room)
diff --git a/src/hb-vector.hh b/src/hb-vector.hh
index 787512f9..313c24c4 100644
--- a/src/hb-vector.hh
+++ b/src/hb-vector.hh
@@ -101,8 +101,8 @@ struct hb_vector_t
   inline hb_sorted_array_t<const Type> as_sorted_array (void) const
   { return hb_sorted_array (arrayZ(), len); }
 
-  template <typename T> inline operator  T * (void) { return arrayZ(); }
-  template <typename T> inline operator const T * (void) const { return arrayZ(); }
+  template <typename T> explicit_operator inline operator  T * (void) { return arrayZ(); }
+  template <typename T> explicit_operator inline operator const T * (void) const { return arrayZ(); }
 
   inline Type * operator  + (unsigned int i) { return arrayZ() + i; }
   inline const Type * operator  + (unsigned int i) const { return arrayZ() + i; }


More information about the HarfBuzz mailing list