Use hb_memcpy instead of memcpy consistently

This commit is contained in:
Behdad Esfahbod 2022-11-22 12:54:50 -07:00
parent ac0efaf818
commit 59c45f6deb
26 changed files with 52 additions and 52 deletions

View File

@ -131,14 +131,14 @@ struct RearrangementSubtable
hb_glyph_info_t *info = buffer->info; hb_glyph_info_t *info = buffer->info;
hb_glyph_info_t buf[4]; hb_glyph_info_t buf[4];
memcpy (buf, info + start, l * sizeof (buf[0])); hb_memcpy (buf, info + start, l * sizeof (buf[0]));
memcpy (buf + 2, info + end - r, r * sizeof (buf[0])); hb_memcpy (buf + 2, info + end - r, r * sizeof (buf[0]));
if (l != r) if (l != r)
memmove (info + start + r, info + start + l, (end - start - l - r) * sizeof (buf[0])); memmove (info + start + r, info + start + l, (end - start - l - r) * sizeof (buf[0]));
memcpy (info + start, buf + 2, r * sizeof (buf[0])); hb_memcpy (info + start, buf + 2, r * sizeof (buf[0]));
memcpy (info + end - l, buf, l * sizeof (buf[0])); hb_memcpy (info + end - l, buf, l * sizeof (buf[0]));
if (reverse_l) if (reverse_l)
{ {
buf[0] = info[end - 1]; buf[0] = info[end - 1];

View File

@ -495,7 +495,7 @@ hb_blob_t::try_make_writable ()
DEBUG_MSG_FUNC (BLOB, this, "dupped successfully -> %p\n", this->data); DEBUG_MSG_FUNC (BLOB, this, "dupped successfully -> %p\n", this->data);
memcpy (new_data, this->data, this->length); hb_memcpy (new_data, this->data, this->length);
this->destroy_user_data (); this->destroy_user_data ();
this->mode = HB_MEMORY_MODE_WRITABLE; this->mode = HB_MEMORY_MODE_WRITABLE;
this->data = new_data; this->data = new_data;

View File

@ -183,7 +183,7 @@ _hb_buffer_serialize_glyphs_json (hb_buffer_t *buffer,
unsigned int l = p - b; unsigned int l = p - b;
if (buf_size > l) if (buf_size > l)
{ {
memcpy (buf, b, l); hb_memcpy (buf, b, l);
buf += l; buf += l;
buf_size -= l; buf_size -= l;
*buf_consumed += l; *buf_consumed += l;
@ -241,7 +241,7 @@ _hb_buffer_serialize_unicode_json (hb_buffer_t *buffer,
unsigned int l = p - b; unsigned int l = p - b;
if (buf_size > l) if (buf_size > l)
{ {
memcpy (buf, b, l); hb_memcpy (buf, b, l);
buf += l; buf += l;
buf_size -= l; buf_size -= l;
*buf_consumed += l; *buf_consumed += l;
@ -329,7 +329,7 @@ _hb_buffer_serialize_glyphs_text (hb_buffer_t *buffer,
unsigned int l = p - b; unsigned int l = p - b;
if (buf_size > l) if (buf_size > l)
{ {
memcpy (buf, b, l); hb_memcpy (buf, b, l);
buf += l; buf += l;
buf_size -= l; buf_size -= l;
*buf_consumed += l; *buf_consumed += l;
@ -381,7 +381,7 @@ _hb_buffer_serialize_unicode_text (hb_buffer_t *buffer,
unsigned int l = p - b; unsigned int l = p - b;
if (buf_size > l) if (buf_size > l)
{ {
memcpy (buf, b, l); hb_memcpy (buf, b, l);
buf += l; buf += l;
buf_size -= l; buf_size -= l;
*buf_consumed += l; *buf_consumed += l;

View File

@ -209,7 +209,7 @@ hb_buffer_t::make_room_for (unsigned int num_in,
assert (have_output); assert (have_output);
out_info = (hb_glyph_info_t *) pos; out_info = (hb_glyph_info_t *) pos;
memcpy (out_info, info, out_len * sizeof (out_info[0])); hb_memcpy (out_info, info, out_len * sizeof (out_info[0]));
} }
return true; return true;
@ -1905,9 +1905,9 @@ hb_buffer_append (hb_buffer_t *buffer,
hb_segment_properties_overlay (&buffer->props, &source->props); hb_segment_properties_overlay (&buffer->props, &source->props);
memcpy (buffer->info + orig_len, source->info + start, (end - start) * sizeof (buffer->info[0])); hb_memcpy (buffer->info + orig_len, source->info + start, (end - start) * sizeof (buffer->info[0]));
if (buffer->have_positions) if (buffer->have_positions)
memcpy (buffer->pos + orig_len, source->pos + start, (end - start) * sizeof (buffer->pos[0])); hb_memcpy (buffer->pos + orig_len, source->pos + start, (end - start) * sizeof (buffer->pos[0]));
if (source->content_type == HB_BUFFER_CONTENT_TYPE_UNICODE) if (source->content_type == HB_BUFFER_CONTENT_TYPE_UNICODE)
{ {

View File

@ -501,7 +501,7 @@ struct op_serializer_t
unsigned char *d = c->allocate_size<unsigned char> (opstr.length); unsigned char *d = c->allocate_size<unsigned char> (opstr.length);
if (unlikely (!d)) return_trace (false); if (unlikely (!d)) return_trace (false);
/* Faster than memcpy for small strings. */ /* Faster than hb_memcpy for small strings. */
for (unsigned i = 0; i < opstr.length; i++) for (unsigned i = 0; i < opstr.length; i++)
d[i] = opstr.ptr[i]; d[i] = opstr.ptr[i];
return_trace (true); return_trace (true);

View File

@ -285,7 +285,7 @@ struct hb_language_item_t {
lang = (hb_language_t) hb_malloc(len); lang = (hb_language_t) hb_malloc(len);
if (likely (lang)) if (likely (lang))
{ {
memcpy((unsigned char *) lang, s, len); hb_memcpy((unsigned char *) lang, s, len);
for (unsigned char *p = (unsigned char *) lang; *p; p++) for (unsigned char *p = (unsigned char *) lang; *p; p++)
*p = canon_map[*p]; *p = canon_map[*p];
} }
@ -379,7 +379,7 @@ hb_language_from_string (const char *str, int len)
/* NUL-terminate it. */ /* NUL-terminate it. */
char strbuf[64]; char strbuf[64];
len = hb_min (len, (int) sizeof (strbuf) - 1); len = hb_min (len, (int) sizeof (strbuf) - 1);
memcpy (strbuf, str, len); hb_memcpy (strbuf, str, len);
strbuf[len] = '\0'; strbuf[len] = '\0';
item = lang_find_or_insert (strbuf); item = lang_find_or_insert (strbuf);
} }
@ -1025,7 +1025,7 @@ hb_feature_to_string (hb_feature_t *feature,
} }
assert (len < ARRAY_LENGTH (s)); assert (len < ARRAY_LENGTH (s));
len = hb_min (len, size - 1); len = hb_min (len, size - 1);
memcpy (buf, s, len); hb_memcpy (buf, s, len);
buf[len] = '\0'; buf[len] = '\0';
} }
@ -1166,7 +1166,7 @@ hb_variation_to_string (hb_variation_t *variation,
assert (len < ARRAY_LENGTH (s)); assert (len < ARRAY_LENGTH (s));
len = hb_min (len, size - 1); len = hb_min (len, size - 1);
memcpy (buf, s, len); hb_memcpy (buf, s, len);
buf[len] = '\0'; buf[len] = '\0';
} }

View File

@ -1803,8 +1803,8 @@ hb_font_create_sub_font (hb_font_t *parent)
float *design_coords = (float *) hb_calloc (num_coords, sizeof (parent->design_coords[0])); float *design_coords = (float *) hb_calloc (num_coords, sizeof (parent->design_coords[0]));
if (likely (coords && design_coords)) if (likely (coords && design_coords))
{ {
memcpy (coords, parent->coords, num_coords * sizeof (parent->coords[0])); hb_memcpy (coords, parent->coords, num_coords * sizeof (parent->coords[0]));
memcpy (design_coords, parent->design_coords, num_coords * sizeof (parent->design_coords[0])); hb_memcpy (design_coords, parent->design_coords, num_coords * sizeof (parent->design_coords[0]));
_hb_font_adopt_var_coords (font, coords, design_coords, num_coords); _hb_font_adopt_var_coords (font, coords, design_coords, num_coords);
} }
else else
@ -2466,7 +2466,7 @@ hb_font_set_var_coords_design (hb_font_t *font,
} }
if (coords_length) if (coords_length)
memcpy (design_coords, coords, coords_length * sizeof (font->design_coords[0])); hb_memcpy (design_coords, coords, coords_length * sizeof (font->design_coords[0]));
hb_ot_var_normalize_coords (font->face, coords_length, coords, normalized); hb_ot_var_normalize_coords (font->face, coords_length, coords, normalized);
_hb_font_adopt_var_coords (font, normalized, design_coords, coords_length); _hb_font_adopt_var_coords (font, normalized, design_coords, coords_length);
@ -2542,8 +2542,8 @@ hb_font_set_var_coords_normalized (hb_font_t *font,
if (coords_length) if (coords_length)
{ {
memcpy (copy, coords, coords_length * sizeof (coords[0])); hb_memcpy (copy, coords, coords_length * sizeof (coords[0]));
memcpy (unmapped, coords, coords_length * sizeof (coords[0])); hb_memcpy (unmapped, coords, coords_length * sizeof (coords[0]));
} }
/* Best effort design coords simulation */ /* Best effort design coords simulation */

View File

@ -158,7 +158,7 @@ typedef struct OpenTypeOffsetTable
return_trace (false); return_trace (false);
if (likely (len)) if (likely (len))
memcpy (start, blob->data, len); hb_memcpy (start, blob->data, len);
/* 4-byte alignment. */ /* 4-byte alignment. */
c->align (4); c->align (4);

View File

@ -68,7 +68,7 @@ struct CFFIndex
unsigned int size = get_size (); unsigned int size = get_size ();
CFFIndex *out = c->allocate_size<CFFIndex> (size); CFFIndex *out = c->allocate_size<CFFIndex> (size);
if (likely (out)) if (likely (out))
memcpy (out, this, size); hb_memcpy (out, this, size);
return_trace (out); return_trace (out);
} }
@ -109,7 +109,7 @@ struct CFFIndex
const hb_ubytes_t &bs = byteArray[i]; const hb_ubytes_t &bs = byteArray[i];
unsigned char *dest = c->allocate_size<unsigned char> (bs.length); unsigned char *dest = c->allocate_size<unsigned char> (bs.length);
if (unlikely (!dest)) return_trace (false); if (unlikely (!dest)) return_trace (false);
memcpy (dest, &bs[0], bs.length); hb_memcpy (dest, &bs[0], bs.length);
} }
return_trace (true); return_trace (true);
@ -508,7 +508,7 @@ struct FDSelect
unsigned int size = src.get_size (num_glyphs); unsigned int size = src.get_size (num_glyphs);
FDSelect *dest = c->allocate_size<FDSelect> (size); FDSelect *dest = c->allocate_size<FDSelect> (size);
if (unlikely (!dest)) return_trace (false); if (unlikely (!dest)) return_trace (false);
memcpy (dest, &src, size); hb_memcpy (dest, &src, size);
return_trace (true); return_trace (true);
} }

View File

@ -175,7 +175,7 @@ struct Encoding
unsigned int size = src.get_size (); unsigned int size = src.get_size ();
Encoding *dest = c->allocate_size<Encoding> (size); Encoding *dest = c->allocate_size<Encoding> (size);
if (unlikely (!dest)) return_trace (false); if (unlikely (!dest)) return_trace (false);
memcpy (dest, &src, size); hb_memcpy (dest, &src, size);
return_trace (true); return_trace (true);
} }
@ -471,7 +471,7 @@ struct Charset
unsigned int size = src.get_size (num_glyphs); unsigned int size = src.get_size (num_glyphs);
Charset *dest = c->allocate_size<Charset> (size); Charset *dest = c->allocate_size<Charset> (size);
if (unlikely (!dest)) return_trace (false); if (unlikely (!dest)) return_trace (false);
memcpy (dest, &src, size); hb_memcpy (dest, &src, size);
return_trace (true); return_trace (true);
} }

View File

@ -56,7 +56,7 @@ struct CFF2FDSelect
unsigned int size = src.get_size (num_glyphs); unsigned int size = src.get_size (num_glyphs);
CFF2FDSelect *dest = c->allocate_size<CFF2FDSelect> (size); CFF2FDSelect *dest = c->allocate_size<CFF2FDSelect> (size);
if (unlikely (!dest)) return_trace (false); if (unlikely (!dest)) return_trace (false);
memcpy (dest, &src, size); hb_memcpy (dest, &src, size);
return_trace (true); return_trace (true);
} }
@ -124,7 +124,7 @@ struct CFF2VariationStore
unsigned int size_ = varStore->get_size (); unsigned int size_ = varStore->get_size ();
CFF2VariationStore *dest = c->allocate_size<CFF2VariationStore> (size_); CFF2VariationStore *dest = c->allocate_size<CFF2VariationStore> (size_);
if (unlikely (!dest)) return_trace (false); if (unlikely (!dest)) return_trace (false);
memcpy (dest, varStore, size_); hb_memcpy (dest, varStore, size_);
return_trace (true); return_trace (true);
} }

View File

@ -67,7 +67,7 @@ _copy_data_to_cbdt (hb_vector_t<char> *cbdt_prime,
{ {
unsigned int new_len = cbdt_prime->length + length; unsigned int new_len = cbdt_prime->length + length;
if (unlikely (!cbdt_prime->alloc (new_len))) return false; if (unlikely (!cbdt_prime->alloc (new_len))) return false;
memcpy (cbdt_prime->arrayZ + cbdt_prime->length, data, length); hb_memcpy (cbdt_prime->arrayZ + cbdt_prime->length, data, length);
cbdt_prime->length = new_len; cbdt_prime->length = new_len;
return true; return true;
} }

View File

@ -2338,7 +2338,7 @@ struct VarRegionList
{ {
unsigned int backward = region_map.backward (r); unsigned int backward = region_map.backward (r);
if (backward >= region_count) return_trace (false); if (backward >= region_count) return_trace (false);
memcpy (&axesZ[axisCount * r], &src->axesZ[axisCount * backward], VarRegionAxis::static_size * axisCount); hb_memcpy (&axesZ[axisCount * r], &src->axesZ[axisCount * backward], VarRegionAxis::static_size * axisCount);
} }
return_trace (true); return_trace (true);

View File

@ -77,11 +77,11 @@ struct MathConstants
HBINT16 *p = c->allocate_size<HBINT16> (HBINT16::static_size * 2); HBINT16 *p = c->allocate_size<HBINT16> (HBINT16::static_size * 2);
if (unlikely (!p)) return_trace (nullptr); if (unlikely (!p)) return_trace (nullptr);
memcpy (p, percentScaleDown, HBINT16::static_size * 2); hb_memcpy (p, percentScaleDown, HBINT16::static_size * 2);
HBUINT16 *m = c->allocate_size<HBUINT16> (HBUINT16::static_size * 2); HBUINT16 *m = c->allocate_size<HBUINT16> (HBUINT16::static_size * 2);
if (unlikely (!m)) return_trace (nullptr); if (unlikely (!m)) return_trace (nullptr);
memcpy (m, minHeight, HBUINT16::static_size * 2); hb_memcpy (m, minHeight, HBUINT16::static_size * 2);
unsigned count = ARRAY_LENGTH (mathValueRecords); unsigned count = ARRAY_LENGTH (mathValueRecords);
for (unsigned i = 0; i < count; i++) for (unsigned i = 0; i < count; i++)

View File

@ -321,7 +321,7 @@ struct name
for (const NameRecord& record : it) for (const NameRecord& record : it)
{ {
memcpy (name_records, &record, NameRecord::static_size); hb_memcpy (name_records, &record, NameRecord::static_size);
name_records++; name_records++;
} }

View File

@ -84,7 +84,7 @@ struct post
post *post_prime = c->allocate_min<post> (); post *post_prime = c->allocate_min<post> ();
if (unlikely (!post_prime)) return_trace (false); if (unlikely (!post_prime)) return_trace (false);
memcpy (post_prime, this, post::min_size); hb_memcpy (post_prime, this, post::min_size);
if (!glyph_names) if (!glyph_names)
return_trace (c->check_assign (post_prime->version.major, 3, return_trace (c->check_assign (post_prime->version.major, 3,
HB_SERIALIZE_ERROR_INT_OVERFLOW)); // Version 3 does not have any glyph names. HB_SERIALIZE_ERROR_INT_OVERFLOW)); // Version 3 does not have any glyph names.

View File

@ -320,7 +320,7 @@ struct AxisValueFormat4
unsigned total_size = min_size + axisCount * AxisValueRecord::static_size; unsigned total_size = min_size + axisCount * AxisValueRecord::static_size;
auto *out = c->serializer->allocate_size<AxisValueFormat4> (total_size); auto *out = c->serializer->allocate_size<AxisValueFormat4> (total_size);
if (unlikely (!out)) return_trace (false); if (unlikely (!out)) return_trace (false);
memcpy (out, this, total_size); hb_memcpy (out, this, total_size);
return_trace (true); return_trace (true);
} }

View File

@ -577,7 +577,7 @@ hb_ot_tags_to_script_and_language (hb_tag_t script_tag,
else else
{ {
int shift; int shift;
memcpy (buf, lang_str, len); hb_memcpy (buf, lang_str, len);
if (lang_str[0] != 'x' || lang_str[1] != '-') { if (lang_str[0] != 'x' || lang_str[1] != '-') {
buf[len++] = '-'; buf[len++] = '-';
buf[len++] = 'x'; buf[len++] = 'x';

View File

@ -47,7 +47,7 @@ struct DeltaSetIndexMapFormat01
HBUINT8 *p = c->allocate_size<HBUINT8> (total_size); HBUINT8 *p = c->allocate_size<HBUINT8> (total_size);
if (unlikely (!p)) return_trace (nullptr); if (unlikely (!p)) return_trace (nullptr);
memcpy (p, this, HBUINT8::static_size * total_size); hb_memcpy (p, this, HBUINT8::static_size * total_size);
return_trace (out); return_trace (out);
} }

View File

@ -454,7 +454,7 @@ struct gvar
F2DOT14 *tuples = c->serializer->allocate_size<F2DOT14> (shared_tuple_size); F2DOT14 *tuples = c->serializer->allocate_size<F2DOT14> (shared_tuple_size);
if (!tuples) return_trace (false); if (!tuples) return_trace (false);
out->sharedTuples = (char *) tuples - (char *) out; out->sharedTuples = (char *) tuples - (char *) out;
memcpy (tuples, this+sharedTuples, shared_tuple_size); hb_memcpy (tuples, this+sharedTuples, shared_tuple_size);
} }
char *subset_data = c->serializer->allocate_size<char> (subset_data_size); char *subset_data = c->serializer->allocate_size<char> (subset_data_size);
@ -477,7 +477,7 @@ struct gvar
((HBUINT16 *) subset_offsets)[gid] = glyph_offset / 2; ((HBUINT16 *) subset_offsets)[gid] = glyph_offset / 2;
if (var_data_bytes.length > 0) if (var_data_bytes.length > 0)
memcpy (subset_data, var_data_bytes.arrayZ, var_data_bytes.length); hb_memcpy (subset_data, var_data_bytes.arrayZ, var_data_bytes.length);
subset_data += var_data_bytes.length; subset_data += var_data_bytes.length;
glyph_offset += var_data_bytes.length; glyph_offset += var_data_bytes.length;
} }

View File

@ -596,7 +596,7 @@ struct hb_serialize_context_t
unsigned int size = obj->get_size (); unsigned int size = obj->get_size ();
Type *ret = this->allocate_size<Type> (size); Type *ret = this->allocate_size<Type> (size);
if (unlikely (!ret)) return nullptr; if (unlikely (!ret)) return nullptr;
memcpy (ret, obj, size); hb_memcpy (ret, obj, size);
return ret; return ret;
} }
template <typename Type> template <typename Type>
@ -617,7 +617,7 @@ struct hb_serialize_context_t
} }
/* Like embed, but active: calls obj.operator=() or obj.copy() to transfer data /* Like embed, but active: calls obj.operator=() or obj.copy() to transfer data
* instead of memcpy(). */ * instead of hb_memcpy(). */
template <typename Type, typename ...Ts> template <typename Type, typename ...Ts>
Type *copy (const Type &src, Ts&&... ds) Type *copy (const Type &src, Ts&&... ds)
{ return _copy (src, hb_prioritize, std::forward<Ts> (ds)...); } { return _copy (src, hb_prioritize, std::forward<Ts> (ds)...); }
@ -677,8 +677,8 @@ struct hb_serialize_context_t
char *p = (char *) hb_malloc (len); char *p = (char *) hb_malloc (len);
if (unlikely (!p)) return hb_bytes_t (); if (unlikely (!p)) return hb_bytes_t ();
memcpy (p, this->start, this->head - this->start); hb_memcpy (p, this->start, this->head - this->start);
memcpy (p + (this->head - this->start), this->tail, this->end - this->tail); hb_memcpy (p + (this->head - this->start), this->tail, this->end - this->tail);
return hb_bytes_t (p, len); return hb_bytes_t (p, len);
} }
template <typename Type> template <typename Type>

View File

@ -74,7 +74,7 @@ hb_shape_plan_key_t::init (bool copy,
this->user_features = copy ? features : user_features; this->user_features = copy ? features : user_features;
if (copy && num_user_features) if (copy && num_user_features)
{ {
memcpy (features, user_features, num_user_features * sizeof (hb_feature_t)); hb_memcpy (features, user_features, num_user_features * sizeof (hb_feature_t));
/* Make start/end uniform to easier catch bugs. */ /* Make start/end uniform to easier catch bugs. */
for (unsigned int i = 0; i < num_user_features; i++) for (unsigned int i = 0; i < num_user_features; i++)
{ {

View File

@ -53,7 +53,7 @@ static struct hb_shapers_lazy_loader_t : hb_lazy_loader_t<hb_shaper_entry_t,
if (unlikely (!shapers)) if (unlikely (!shapers))
return nullptr; return nullptr;
memcpy (shapers, _hb_all_shapers, sizeof (_hb_all_shapers)); hb_memcpy (shapers, _hb_all_shapers, sizeof (_hb_all_shapers));
/* Reorder shaper list to prefer requested shapers. */ /* Reorder shaper list to prefer requested shapers. */
unsigned int i = 0; unsigned int i = 0;

View File

@ -113,7 +113,7 @@ struct str_encoder_t
else if (unlikely (!buff.resize (offset + length))) else if (unlikely (!buff.resize (offset + length)))
return; return;
/* Faster than memcpy for small strings. */ /* Faster than hb_memcpy for small strings. */
for (unsigned i = 0; i < length; i++) for (unsigned i = 0; i < length; i++)
buff.arrayZ[i + offset] = str[i]; buff.arrayZ[i + offset] = str[i];
//hb_memcpy (buff.arrayZ + offset, str, length); //hb_memcpy (buff.arrayZ + offset, str, length);
@ -184,7 +184,7 @@ struct cff_font_dict_op_serializer_t : op_serializer_t
{ {
unsigned char *d = c->allocate_size<unsigned char> (opstr.length); unsigned char *d = c->allocate_size<unsigned char> (opstr.length);
if (unlikely (!d)) return_trace (false); if (unlikely (!d)) return_trace (false);
/* Faster than memcpy for small strings. */ /* Faster than hb_memcpy for small strings. */
for (unsigned i = 0; i < opstr.length; i++) for (unsigned i = 0; i < opstr.length; i++)
d[i] = opstr.ptr[i]; d[i] = opstr.ptr[i];
//hb_memcpy (d, opstr.ptr, opstr.length); //hb_memcpy (d, opstr.ptr, opstr.length);

View File

@ -355,7 +355,7 @@ _hb_rename_font (hb_blob_t *blob, wchar_t *new_name)
return nullptr; return nullptr;
} }
memcpy(new_sfnt_data, orig_sfnt_data, length); hb_memcpy(new_sfnt_data, orig_sfnt_data, length);
OT::name &name = StructAtOffset<OT::name> (new_sfnt_data, name_table_offset); OT::name &name = StructAtOffset<OT::name> (new_sfnt_data, name_table_offset);
name.format = 0; name.format = 0;
@ -482,7 +482,7 @@ populate_log_font (LOGFONTW *lf,
lf->lfHeight = - (int) font_size; lf->lfHeight = - (int) font_size;
lf->lfCharSet = DEFAULT_CHARSET; lf->lfCharSet = DEFAULT_CHARSET;
memcpy (lf->lfFaceName, font->face->data.uniscribe->face_name, sizeof (lf->lfFaceName)); hb_memcpy (lf->lfFaceName, font->face->data.uniscribe->face_name, sizeof (lf->lfFaceName));
return true; return true;
} }

View File

@ -35,7 +35,7 @@ static void extend (const char* value,
hb_serialize_context_t* c) hb_serialize_context_t* c)
{ {
char* obj = c->allocate_size<char> (len); char* obj = c->allocate_size<char> (len);
memcpy (obj, value, len); hb_memcpy (obj, value, len);
} }
static void start_object(const char* tag, static void start_object(const char* tag,