+ /** Limit of last reordered range. 0 if no reordering or no split bytes. */
+ uint32_t minHighNoReorder;
+ /**
+ * Primary-weight ranges for script reordering,
+ * to be used by reorder(p) for split-reordered primary lead bytes.
+ *
+ * Each entry is a (limit, offset) pair.
+ * The upper 16 bits of the entry are the upper 16 bits of the
+ * exclusive primary limit of a range.
+ * Primaries between the previous limit and this one have their lead bytes
+ * modified by the signed offset (-0xff..+0xff) stored in the lower 16 bits.
+ *
+ * CollationData::makeReorderRanges() writes a full list where the first range
+ * (at least for terminators and separators) has a 0 offset.
+ * The last range has a non-zero offset.
+ * minHighNoReorder is set to the limit of that last range.
+ *
+ * In the settings object, the initial ranges before the first split lead byte
+ * are omitted for efficiency; they are handled by reorder(p) via the reorderTable.
+ * If there are no split-reordered lead bytes, then no ranges are needed.
+ */
+ const uint32_t *reorderRanges;
+ int32_t reorderRangesLength;