diff --git a/include/hb_detail.h b/include/hb_detail.h index d222d4c6fb87594d5ec1709153d9f04f77e8838c..1164702d998dde98e15ed05d7ad54dfa56610ba9 100644 --- a/include/hb_detail.h +++ b/include/hb_detail.h @@ -553,7 +553,7 @@ struct ZoneResponse { bool parse(ZoneAndProperties& zps, bool& hasMore) { if (len < min_len || data[3] != len) { return false; } // check valid again Char sum_ = data[len - 1]; sum(data, len); if (sum_ != data[len - 1]) { return false; } // check sum again - Char count = (len - min_len) >> 2; // zone/prop pairs + Char count = Char(len - min_len) >> 1; // zone/prop pairs if (count == 0) { zps.clear(); hasMore = false; return true; } for (Char i = 0; i < count; i++) { ZoneAndProperty zp; @@ -755,7 +755,7 @@ struct QuerySensorLostSettingsResponse { if (len < min_len || data[3] != len) { return false; } // check valid again Char sum_ = data[len - 1]; sum(data, len); if (sum_ != data[len - 1]) { return false; } // check sum again Char flag = data[6]; if (flag != P1FlagZoneAs1Char && flag != P1FlagZoneAs2Chars) { return false; } // check param - Char count = (len - min_len); if (flag == P1FlagZoneAs2Chars) { count /= 2; } + Char count = Char(len - min_len); if (flag == P1FlagZoneAs2Chars) { count >>= 1; } if (count == 0) { zones.clear(); hasMore = false; return true; } for (Char i = 0; i < count; i++) { size_t zone = data[7 + i];