Index: third_party/harfbuzz-ng/src/hb-blob.h |
=================================================================== |
--- third_party/harfbuzz-ng/src/hb-blob.h (리비전 191245) |
+++ third_party/harfbuzz-ng/src/hb-blob.h (작업 사본) |
@@ -36,6 +36,26 @@ |
HB_BEGIN_DECLS |
+/* |
+ * Note re 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, MODE_DUPLICATE should be used |
+ * such that HarfBuzz makes a copy immediately, |
+ * |
+ * - Use MODE_READONLY otherse, unless you really really |
+ * really know what you are doing, |
+ * |
+ * - MODE_WRITABLE is appropriate if you relaly 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 ok to use |
+ * READONLY_MAY_MAKE_WRITABLE, however, there were |
+ * design problems with that mode, so HarfBuzz do not |
+ * really use it anymore. If not sure, use MODE_READONLY. |
+ */ |
typedef enum { |
HB_MEMORY_MODE_DUPLICATE, |
HB_MEMORY_MODE_READONLY, |
@@ -52,6 +72,12 @@ |
void *user_data, |
hb_destroy_func_t destroy); |
+/* Always creates with MEMORY_MODE_READONLY. |
+ * Even if the parent blob is writable, we don't |
+ * want the user of the sub-blob to be able to |
+ * modify the parent data as that data may be |
+ * shared among multiple sub-blobs. |
+ */ |
hb_blob_t * |
hb_blob_create_sub_blob (hb_blob_t *parent, |
unsigned int offset, |