hb_memory_mode_t

Data type holding the memory modes available to client programs.

Regarding these various memory-modes:

  • In no case shall the HarfBuzz client modify memory that is passed to HarfBuzz in a blob. If there is any such possibility, @HB_MEMORY_MODE_DUPLICATE should be used such that HarfBuzz makes a copy immediately,
  • Use @HB_MEMORY_MODE_READONLY otherwise, unless you really really really know what you are doing,
  • @HB_MEMORY_MODE_WRITABLE is appropriate if you really made a copy of data solely for the purpose of passing to HarfBuzz and doing that just once (no reuse!),
  • If the font is mmap()ed, it's okay to use @HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE, however, using that mode correctly is very tricky. Use @HB_MEMORY_MODE_READONLY instead.

Values

ValueMeaning
Duplicate0

HarfBuzz immediately makes a copy of the data.

Readonly1

HarfBuzz client will never modify the data, and HarfBuzz will never modify the data.

Writable2

HarfBuzz client made a copy of the data solely for HarfBuzz, so HarfBuzz may modify the data.

ReadonlyMayMakeWritable3

See above