[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 39e9629..5f3d153 100644
--- a/src/hb-machinery.hh
+++ b/src/hb-machinery.hh
@@ -658,7 +658,7 @@
}
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 cdc610b..a2e611c 100644
--- a/src/hb-ot-cmap-table.hh
+++ b/src/hb-ot-cmap-table.hh
@@ -495,7 +495,8 @@
{
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 100bdb2..a3beeef 100644
--- a/src/hb-set.hh
+++ b/src/hb-set.hh
@@ -375,8 +375,8 @@
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 a3917b8..14d4774 100644
--- a/src/hb-subset.cc
+++ b/src/hb-subset.cc
@@ -77,7 +77,7 @@
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 787512f..313c24c 100644
--- a/src/hb-vector.hh
+++ b/src/hb-vector.hh
@@ -101,8 +101,8 @@
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; }