More lig-id cleanup
This commit is contained in:
parent
f6a23a0b91
commit
dbf56b1d94
|
@ -120,11 +120,11 @@ struct _hb_buffer_t {
|
||||||
|
|
||||||
/* Other stuff */
|
/* Other stuff */
|
||||||
|
|
||||||
unsigned int max_lig_id;
|
unsigned int serial;
|
||||||
|
|
||||||
|
|
||||||
/* Methods */
|
/* Methods */
|
||||||
inline unsigned int allocate_lig_id (void) { return max_lig_id++; }
|
inline unsigned int next_serial (void) { return serial++; }
|
||||||
inline void swap (void) { _hb_buffer_swap (this); }
|
inline void swap (void) { _hb_buffer_swap (this); }
|
||||||
inline void clear_output (void) { _hb_buffer_clear_output (this); }
|
inline void clear_output (void) { _hb_buffer_clear_output (this); }
|
||||||
inline void next_glyph (void) { _hb_buffer_next_glyph (this); }
|
inline void next_glyph (void) { _hb_buffer_next_glyph (this); }
|
||||||
|
|
|
@ -228,7 +228,7 @@ hb_buffer_clear (hb_buffer_t *buffer)
|
||||||
buffer->out_len = 0;
|
buffer->out_len = 0;
|
||||||
buffer->i = 0;
|
buffer->i = 0;
|
||||||
buffer->out_info = buffer->info;
|
buffer->out_info = buffer->info;
|
||||||
buffer->max_lig_id = 0;
|
buffer->serial = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
hb_bool_t
|
hb_bool_t
|
||||||
|
|
|
@ -391,7 +391,7 @@ struct Ligature
|
||||||
: HB_OT_LAYOUT_GLYPH_CLASS_LIGATURE);
|
: HB_OT_LAYOUT_GLYPH_CLASS_LIGATURE);
|
||||||
|
|
||||||
/* Allocate new ligature id */
|
/* Allocate new ligature id */
|
||||||
unsigned int lig_id = c->buffer->allocate_lig_id ();
|
unsigned int lig_id = allocate_lig_id (c->buffer);
|
||||||
c->buffer->info[c->buffer->i].component() = 0;
|
c->buffer->info[c->buffer->i].component() = 0;
|
||||||
c->buffer->info[c->buffer->i].lig_id() = lig_id;
|
c->buffer->info[c->buffer->i].lig_id() = lig_id;
|
||||||
|
|
||||||
|
@ -427,6 +427,12 @@ struct Ligature
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline uint16_t allocate_lig_id (hb_buffer_t *buffer) const {
|
||||||
|
uint16_t lig_id = buffer->next_serial ();
|
||||||
|
if (unlikely (!lig_id)) lig_id = buffer->next_serial (); /* in case of overflows */
|
||||||
|
return lig_id;
|
||||||
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
inline bool sanitize (hb_sanitize_context_t *c) {
|
inline bool sanitize (hb_sanitize_context_t *c) {
|
||||||
TRACE_SANITIZE ();
|
TRACE_SANITIZE ();
|
||||||
|
|
Loading…
Reference in New Issue