diff --git a/kitty/font-names.c b/kitty/font-names.c index 0c55be344..f482a18b9 100644 --- a/kitty/font-names.c +++ b/kitty/font-names.c @@ -273,11 +273,13 @@ read_STAT_font_table(const uint8_t *table, size_t table_len, PyObject *name_look app("sd sd", "value", value, "linked_value", linked_value); } break; case 4: if ((uint8_t*)(p) + 6 * axis_index <= table_limit) { - RAII_PyObject(values, PyTuple_New(axis_index)); + const uint16_t axis_count = axis_index; + RAII_PyObject(values, PyTuple_New(axis_count)); if (!values) return false; - for (uint16_t n = 0; n < axis_index; n++, p += 3) { + for (uint16_t n = 0; n < axis_count; n++) { uint16_t actual_axis_index = next; - p32 = (uint32_t*)p; double value = next32; + double value = load_fixed((uint32_t*)p); + p += 2; PyObject *e = Py_BuildValue("{sH sd}", "design_index", actual_axis_index, "value", value); if (!e) return false; PyTuple_SET_ITEM(values, n, e);