Commit 2fd710fb authored by Christian Holler (:decoder)'s avatar Christian Holler (:decoder) Committed by Pier Angelo Vendrame
Browse files

Bug 1990085 - Improve enum serialization in gfx. r=lsalzman a=RyanVM

parent bf3a365e
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -70,9 +70,16 @@ void ReadElement(S& aStream, T& aElement) {
template <class S, class T>
void ReadElementConstrained(S& aStream, T& aElement, const T& aMinValue,
                            const T& aMaxValue) {
  ElementStreamFormat<S, T>::Read(aStream, aElement);
  if (aElement < aMinValue || aElement > aMaxValue) {
  std::underlying_type_t<T> value = 0;
  ReadElement(aStream, value);

  auto minInt = static_cast<std::underlying_type_t<T>>(aMinValue);
  auto maxInt = static_cast<std::underlying_type_t<T>>(aMaxValue);

  if (value < minInt || value > maxInt) {
    aStream.SetIsBad();
  } else {
    aElement = static_cast<T>(value);
  }
}
template <class S, class T>