diff --git a/src/hb-buffer-deserialize-json.hh b/src/hb-buffer-deserialize-json.hh index 3b0485cea..81cb18791 100644 --- a/src/hb-buffer-deserialize-json.hh +++ b/src/hb-buffer-deserialize-json.hh @@ -481,7 +481,7 @@ static const int deserialize_json_error = 0; static const int deserialize_json_en_main = 1; -#line 129 "hb-buffer-deserialize-json.rl" +#line 125 "hb-buffer-deserialize-json.rl" static hb_bool_t @@ -566,31 +566,27 @@ _resume: { if (unlikely (buffer->content_type != HB_BUFFER_CONTENT_TYPE_GLYPHS)) { - if (buffer->content_type != HB_BUFFER_CONTENT_TYPE_INVALID) { - buffer->clear(); + if (buffer->content_type != HB_BUFFER_CONTENT_TYPE_INVALID) return false; - } assert (buffer->len == 0); buffer->content_type = HB_BUFFER_CONTENT_TYPE_GLYPHS; } } break; case 21: -#line 67 "hb-buffer-deserialize-json.rl" +#line 65 "hb-buffer-deserialize-json.rl" { if (unlikely (buffer->content_type != HB_BUFFER_CONTENT_TYPE_UNICODE)) { - if (buffer->content_type != HB_BUFFER_CONTENT_TYPE_INVALID) { - buffer->clear(); + if (buffer->content_type != HB_BUFFER_CONTENT_TYPE_INVALID) return false; - } assert (buffer->len == 0); buffer->content_type = HB_BUFFER_CONTENT_TYPE_UNICODE; } } break; case 16: -#line 79 "hb-buffer-deserialize-json.rl" +#line 75 "hb-buffer-deserialize-json.rl" { /* TODO Unescape \" and \\ if found. */ if (!hb_font_glyph_from_string (font, @@ -600,27 +596,27 @@ _resume: } break; case 18: -#line 87 "hb-buffer-deserialize-json.rl" +#line 83 "hb-buffer-deserialize-json.rl" { if (!parse_uint (tok, p, &info.codepoint)) return false; } break; case 8: -#line 88 "hb-buffer-deserialize-json.rl" +#line 84 "hb-buffer-deserialize-json.rl" { if (!parse_uint (tok, p, &info.cluster )) return false; } break; case 10: -#line 89 "hb-buffer-deserialize-json.rl" +#line 85 "hb-buffer-deserialize-json.rl" { if (!parse_int (tok, p, &pos.x_offset )) return false; } break; case 12: -#line 90 "hb-buffer-deserialize-json.rl" +#line 86 "hb-buffer-deserialize-json.rl" { if (!parse_int (tok, p, &pos.y_offset )) return false; } break; case 3: -#line 91 "hb-buffer-deserialize-json.rl" +#line 87 "hb-buffer-deserialize-json.rl" { if (!parse_int (tok, p, &pos.x_advance)) return false; } break; case 6: -#line 92 "hb-buffer-deserialize-json.rl" +#line 88 "hb-buffer-deserialize-json.rl" { if (!parse_int (tok, p, &pos.y_advance)) return false; } break; case 14: @@ -632,10 +628,8 @@ _resume: { if (unlikely (buffer->content_type != HB_BUFFER_CONTENT_TYPE_GLYPHS)) { - if (buffer->content_type != HB_BUFFER_CONTENT_TYPE_INVALID) { - buffer->clear(); + if (buffer->content_type != HB_BUFFER_CONTENT_TYPE_INVALID) return false; - } assert (buffer->len == 0); buffer->content_type = HB_BUFFER_CONTENT_TYPE_GLYPHS; } @@ -646,21 +640,19 @@ _resume: { tok = p; } -#line 67 "hb-buffer-deserialize-json.rl" +#line 65 "hb-buffer-deserialize-json.rl" { if (unlikely (buffer->content_type != HB_BUFFER_CONTENT_TYPE_UNICODE)) { - if (buffer->content_type != HB_BUFFER_CONTENT_TYPE_INVALID) { - buffer->clear(); + if (buffer->content_type != HB_BUFFER_CONTENT_TYPE_INVALID) return false; - } assert (buffer->len == 0); buffer->content_type = HB_BUFFER_CONTENT_TYPE_UNICODE; } } break; case 17: -#line 79 "hb-buffer-deserialize-json.rl" +#line 75 "hb-buffer-deserialize-json.rl" { /* TODO Unescape \" and \\ if found. */ if (!hb_font_glyph_from_string (font, @@ -678,7 +670,7 @@ _resume: } break; case 19: -#line 87 "hb-buffer-deserialize-json.rl" +#line 83 "hb-buffer-deserialize-json.rl" { if (!parse_uint (tok, p, &info.codepoint)) return false; } #line 43 "hb-buffer-deserialize-json.rl" { @@ -690,7 +682,7 @@ _resume: } break; case 9: -#line 88 "hb-buffer-deserialize-json.rl" +#line 84 "hb-buffer-deserialize-json.rl" { if (!parse_uint (tok, p, &info.cluster )) return false; } #line 43 "hb-buffer-deserialize-json.rl" { @@ -702,7 +694,7 @@ _resume: } break; case 11: -#line 89 "hb-buffer-deserialize-json.rl" +#line 85 "hb-buffer-deserialize-json.rl" { if (!parse_int (tok, p, &pos.x_offset )) return false; } #line 43 "hb-buffer-deserialize-json.rl" { @@ -714,7 +706,7 @@ _resume: } break; case 13: -#line 90 "hb-buffer-deserialize-json.rl" +#line 86 "hb-buffer-deserialize-json.rl" { if (!parse_int (tok, p, &pos.y_offset )) return false; } #line 43 "hb-buffer-deserialize-json.rl" { @@ -726,7 +718,7 @@ _resume: } break; case 4: -#line 91 "hb-buffer-deserialize-json.rl" +#line 87 "hb-buffer-deserialize-json.rl" { if (!parse_int (tok, p, &pos.x_advance)) return false; } #line 43 "hb-buffer-deserialize-json.rl" { @@ -738,7 +730,7 @@ _resume: } break; case 7: -#line 92 "hb-buffer-deserialize-json.rl" +#line 88 "hb-buffer-deserialize-json.rl" { if (!parse_int (tok, p, &pos.y_advance)) return false; } #line 43 "hb-buffer-deserialize-json.rl" { @@ -749,7 +741,7 @@ _resume: *end_ptr = p; } break; -#line 753 "hb-buffer-deserialize-json.hh" +#line 745 "hb-buffer-deserialize-json.hh" } _again: @@ -761,7 +753,7 @@ _again: _out: {} } -#line 157 "hb-buffer-deserialize-json.rl" +#line 153 "hb-buffer-deserialize-json.rl" *end_ptr = p; diff --git a/src/hb-buffer-deserialize-json.rl b/src/hb-buffer-deserialize-json.rl index da84d8e76..988b288c1 100644 --- a/src/hb-buffer-deserialize-json.rl +++ b/src/hb-buffer-deserialize-json.rl @@ -55,10 +55,8 @@ action tok { action ensure_glyphs { if (unlikely (buffer->content_type != HB_BUFFER_CONTENT_TYPE_GLYPHS)) { - if (buffer->content_type != HB_BUFFER_CONTENT_TYPE_INVALID) { - buffer->clear(); + if (buffer->content_type != HB_BUFFER_CONTENT_TYPE_INVALID) return false; - } assert (buffer->len == 0); buffer->content_type = HB_BUFFER_CONTENT_TYPE_GLYPHS; } @@ -67,10 +65,8 @@ action ensure_glyphs { action ensure_unicode { if (unlikely (buffer->content_type != HB_BUFFER_CONTENT_TYPE_UNICODE)) { - if (buffer->content_type != HB_BUFFER_CONTENT_TYPE_INVALID) { - buffer->clear(); + if (buffer->content_type != HB_BUFFER_CONTENT_TYPE_INVALID) return false; - } assert (buffer->len == 0); buffer->content_type = HB_BUFFER_CONTENT_TYPE_UNICODE; } diff --git a/src/hb-buffer-deserialize-text.hh b/src/hb-buffer-deserialize-text.hh index f4b79d541..317ec78ef 100644 --- a/src/hb-buffer-deserialize-text.hh +++ b/src/hb-buffer-deserialize-text.hh @@ -401,7 +401,7 @@ static const int deserialize_text_error = 0; static const int deserialize_text_en_main = 1; -#line 135 "hb-buffer-deserialize-text.rl" +#line 131 "hb-buffer-deserialize-text.rl" static hb_bool_t @@ -472,31 +472,27 @@ _resume: { if (unlikely (buffer->content_type != HB_BUFFER_CONTENT_TYPE_GLYPHS)) { - if (buffer->content_type != HB_BUFFER_CONTENT_TYPE_INVALID) { - buffer->clear(); + if (buffer->content_type != HB_BUFFER_CONTENT_TYPE_INVALID) return false; - } assert (buffer->len == 0); buffer->content_type = HB_BUFFER_CONTENT_TYPE_GLYPHS; } } break; case 8: -#line 67 "hb-buffer-deserialize-text.rl" +#line 65 "hb-buffer-deserialize-text.rl" { if (unlikely (buffer->content_type != HB_BUFFER_CONTENT_TYPE_UNICODE)) { - if (buffer->content_type != HB_BUFFER_CONTENT_TYPE_INVALID) { - buffer->clear(); + if (buffer->content_type != HB_BUFFER_CONTENT_TYPE_INVALID) return false; - } assert (buffer->len == 0); buffer->content_type = HB_BUFFER_CONTENT_TYPE_UNICODE; } } break; case 18: -#line 79 "hb-buffer-deserialize-text.rl" +#line 75 "hb-buffer-deserialize-text.rl" { /* TODO Unescape delimeters. */ if (!hb_font_glyph_from_string (font, @@ -506,23 +502,23 @@ _resume: } break; case 9: -#line 87 "hb-buffer-deserialize-text.rl" +#line 83 "hb-buffer-deserialize-text.rl" {if (!parse_hex (tok, p, &info.codepoint )) return false; } break; case 21: -#line 89 "hb-buffer-deserialize-text.rl" +#line 85 "hb-buffer-deserialize-text.rl" { if (!parse_uint (tok, p, &info.cluster )) return false; } break; case 6: -#line 90 "hb-buffer-deserialize-text.rl" +#line 86 "hb-buffer-deserialize-text.rl" { if (!parse_int (tok, p, &pos.x_offset )) return false; } break; case 23: -#line 91 "hb-buffer-deserialize-text.rl" +#line 87 "hb-buffer-deserialize-text.rl" { if (!parse_int (tok, p, &pos.y_offset )) return false; } break; case 20: -#line 92 "hb-buffer-deserialize-text.rl" +#line 88 "hb-buffer-deserialize-text.rl" { if (!parse_int (tok, p, &pos.x_advance)) return false; } break; case 15: @@ -545,10 +541,8 @@ _resume: { if (unlikely (buffer->content_type != HB_BUFFER_CONTENT_TYPE_GLYPHS)) { - if (buffer->content_type != HB_BUFFER_CONTENT_TYPE_INVALID) { - buffer->clear(); + if (buffer->content_type != HB_BUFFER_CONTENT_TYPE_INVALID) return false; - } assert (buffer->len == 0); buffer->content_type = HB_BUFFER_CONTENT_TYPE_GLYPHS; } @@ -559,21 +553,19 @@ _resume: { tok = p; } -#line 67 "hb-buffer-deserialize-text.rl" +#line 65 "hb-buffer-deserialize-text.rl" { if (unlikely (buffer->content_type != HB_BUFFER_CONTENT_TYPE_UNICODE)) { - if (buffer->content_type != HB_BUFFER_CONTENT_TYPE_INVALID) { - buffer->clear(); + if (buffer->content_type != HB_BUFFER_CONTENT_TYPE_INVALID) return false; - } assert (buffer->len == 0); buffer->content_type = HB_BUFFER_CONTENT_TYPE_UNICODE; } } break; case 16: -#line 79 "hb-buffer-deserialize-text.rl" +#line 75 "hb-buffer-deserialize-text.rl" { /* TODO Unescape delimeters. */ if (!hb_font_glyph_from_string (font, @@ -591,7 +583,7 @@ _resume: } break; case 7: -#line 87 "hb-buffer-deserialize-text.rl" +#line 83 "hb-buffer-deserialize-text.rl" {if (!parse_hex (tok, p, &info.codepoint )) return false; } #line 43 "hb-buffer-deserialize-text.rl" { @@ -603,7 +595,7 @@ _resume: } break; case 10: -#line 89 "hb-buffer-deserialize-text.rl" +#line 85 "hb-buffer-deserialize-text.rl" { if (!parse_uint (tok, p, &info.cluster )) return false; } #line 43 "hb-buffer-deserialize-text.rl" { @@ -615,7 +607,7 @@ _resume: } break; case 22: -#line 91 "hb-buffer-deserialize-text.rl" +#line 87 "hb-buffer-deserialize-text.rl" { if (!parse_int (tok, p, &pos.y_offset )) return false; } #line 43 "hb-buffer-deserialize-text.rl" { @@ -627,7 +619,7 @@ _resume: } break; case 19: -#line 92 "hb-buffer-deserialize-text.rl" +#line 88 "hb-buffer-deserialize-text.rl" { if (!parse_int (tok, p, &pos.x_advance)) return false; } #line 43 "hb-buffer-deserialize-text.rl" { @@ -639,7 +631,7 @@ _resume: } break; case 24: -#line 93 "hb-buffer-deserialize-text.rl" +#line 89 "hb-buffer-deserialize-text.rl" { if (!parse_int (tok, p, &pos.y_advance)) return false; } #line 43 "hb-buffer-deserialize-text.rl" { @@ -664,10 +656,8 @@ _resume: { if (unlikely (buffer->content_type != HB_BUFFER_CONTENT_TYPE_GLYPHS)) { - if (buffer->content_type != HB_BUFFER_CONTENT_TYPE_INVALID) { - buffer->clear(); + if (buffer->content_type != HB_BUFFER_CONTENT_TYPE_INVALID) return false; - } assert (buffer->len == 0); buffer->content_type = HB_BUFFER_CONTENT_TYPE_GLYPHS; } @@ -683,7 +673,7 @@ _resume: { tok = p; } -#line 79 "hb-buffer-deserialize-text.rl" +#line 75 "hb-buffer-deserialize-text.rl" { /* TODO Unescape delimeters. */ if (!hb_font_glyph_from_string (font, @@ -693,7 +683,7 @@ _resume: } break; case 17: -#line 79 "hb-buffer-deserialize-text.rl" +#line 75 "hb-buffer-deserialize-text.rl" { /* TODO Unescape delimeters. */ if (!hb_font_glyph_from_string (font, @@ -705,10 +695,8 @@ _resume: { if (unlikely (buffer->content_type != HB_BUFFER_CONTENT_TYPE_GLYPHS)) { - if (buffer->content_type != HB_BUFFER_CONTENT_TYPE_INVALID) { - buffer->clear(); + if (buffer->content_type != HB_BUFFER_CONTENT_TYPE_INVALID) return false; - } assert (buffer->len == 0); buffer->content_type = HB_BUFFER_CONTENT_TYPE_GLYPHS; } @@ -732,7 +720,7 @@ _resume: { tok = p; } -#line 79 "hb-buffer-deserialize-text.rl" +#line 75 "hb-buffer-deserialize-text.rl" { /* TODO Unescape delimeters. */ if (!hb_font_glyph_from_string (font, @@ -759,7 +747,7 @@ _resume: { tok = p; } -#line 79 "hb-buffer-deserialize-text.rl" +#line 75 "hb-buffer-deserialize-text.rl" { /* TODO Unescape delimeters. */ if (!hb_font_glyph_from_string (font, @@ -771,10 +759,8 @@ _resume: { if (unlikely (buffer->content_type != HB_BUFFER_CONTENT_TYPE_GLYPHS)) { - if (buffer->content_type != HB_BUFFER_CONTENT_TYPE_INVALID) { - buffer->clear(); + if (buffer->content_type != HB_BUFFER_CONTENT_TYPE_INVALID) return false; - } assert (buffer->len == 0); buffer->content_type = HB_BUFFER_CONTENT_TYPE_GLYPHS; } @@ -788,7 +774,7 @@ _resume: *end_ptr = p; } break; -#line 792 "hb-buffer-deserialize-text.hh" +#line 778 "hb-buffer-deserialize-text.hh" } _again: @@ -801,7 +787,7 @@ _again: { switch ( _deserialize_text_eof_actions[cs] ) { case 16: -#line 79 "hb-buffer-deserialize-text.rl" +#line 75 "hb-buffer-deserialize-text.rl" { /* TODO Unescape delimeters. */ if (!hb_font_glyph_from_string (font, @@ -819,7 +805,7 @@ _again: } break; case 7: -#line 87 "hb-buffer-deserialize-text.rl" +#line 83 "hb-buffer-deserialize-text.rl" {if (!parse_hex (tok, p, &info.codepoint )) return false; } #line 43 "hb-buffer-deserialize-text.rl" { @@ -831,7 +817,7 @@ _again: } break; case 10: -#line 89 "hb-buffer-deserialize-text.rl" +#line 85 "hb-buffer-deserialize-text.rl" { if (!parse_uint (tok, p, &info.cluster )) return false; } #line 43 "hb-buffer-deserialize-text.rl" { @@ -843,7 +829,7 @@ _again: } break; case 22: -#line 91 "hb-buffer-deserialize-text.rl" +#line 87 "hb-buffer-deserialize-text.rl" { if (!parse_int (tok, p, &pos.y_offset )) return false; } #line 43 "hb-buffer-deserialize-text.rl" { @@ -855,7 +841,7 @@ _again: } break; case 19: -#line 92 "hb-buffer-deserialize-text.rl" +#line 88 "hb-buffer-deserialize-text.rl" { if (!parse_int (tok, p, &pos.x_advance)) return false; } #line 43 "hb-buffer-deserialize-text.rl" { @@ -867,7 +853,7 @@ _again: } break; case 24: -#line 93 "hb-buffer-deserialize-text.rl" +#line 89 "hb-buffer-deserialize-text.rl" { if (!parse_int (tok, p, &pos.y_advance)) return false; } #line 43 "hb-buffer-deserialize-text.rl" { @@ -888,7 +874,7 @@ _again: { tok = p; } -#line 79 "hb-buffer-deserialize-text.rl" +#line 75 "hb-buffer-deserialize-text.rl" { /* TODO Unescape delimeters. */ if (!hb_font_glyph_from_string (font, @@ -905,14 +891,14 @@ _again: *end_ptr = p; } break; -#line 909 "hb-buffer-deserialize-text.hh" +#line 895 "hb-buffer-deserialize-text.hh" } } _out: {} } -#line 159 "hb-buffer-deserialize-text.rl" +#line 155 "hb-buffer-deserialize-text.rl" *end_ptr = p; diff --git a/src/hb-buffer-deserialize-text.rl b/src/hb-buffer-deserialize-text.rl index 4b17dcbf1..132f123b3 100644 --- a/src/hb-buffer-deserialize-text.rl +++ b/src/hb-buffer-deserialize-text.rl @@ -55,10 +55,8 @@ action tok { action ensure_glyphs { if (unlikely (buffer->content_type != HB_BUFFER_CONTENT_TYPE_GLYPHS)) { - if (buffer->content_type != HB_BUFFER_CONTENT_TYPE_INVALID) { - buffer->clear(); + if (buffer->content_type != HB_BUFFER_CONTENT_TYPE_INVALID) return false; - } assert (buffer->len == 0); buffer->content_type = HB_BUFFER_CONTENT_TYPE_GLYPHS; } @@ -67,10 +65,8 @@ action ensure_glyphs { action ensure_unicode { if (unlikely (buffer->content_type != HB_BUFFER_CONTENT_TYPE_UNICODE)) { - if (buffer->content_type != HB_BUFFER_CONTENT_TYPE_INVALID) { - buffer->clear(); + if (buffer->content_type != HB_BUFFER_CONTENT_TYPE_INVALID) return false; - } assert (buffer->len == 0); buffer->content_type = HB_BUFFER_CONTENT_TYPE_UNICODE; }