YGLayout.cpp 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /**
  2. * Copyright (c) Facebook, Inc. and its affiliates.
  3. *
  4. * This source code is licensed under the MIT license found in the LICENSE
  5. * file in the root directory of this source tree.
  6. */
  7. #include "YGLayout.h"
  8. #include "Utils.h"
  9. using namespace facebook;
  10. bool YGLayout::operator==(YGLayout layout) const {
  11. bool isEqual = YGFloatArrayEqual(position, layout.position) &&
  12. YGFloatArrayEqual(dimensions, layout.dimensions) &&
  13. YGFloatArrayEqual(margin, layout.margin) &&
  14. YGFloatArrayEqual(border, layout.border) &&
  15. YGFloatArrayEqual(padding, layout.padding) &&
  16. direction == layout.direction && hadOverflow == layout.hadOverflow &&
  17. lastOwnerDirection == layout.lastOwnerDirection &&
  18. nextCachedMeasurementsIndex == layout.nextCachedMeasurementsIndex &&
  19. cachedLayout == layout.cachedLayout &&
  20. computedFlexBasis == layout.computedFlexBasis;
  21. for (uint32_t i = 0; i < YG_MAX_CACHED_RESULT_COUNT && isEqual; ++i) {
  22. isEqual = isEqual && cachedMeasurements[i] == layout.cachedMeasurements[i];
  23. }
  24. if (!yoga::isUndefined(measuredDimensions[0]) ||
  25. !yoga::isUndefined(layout.measuredDimensions[0])) {
  26. isEqual =
  27. isEqual && (measuredDimensions[0] == layout.measuredDimensions[0]);
  28. }
  29. if (!yoga::isUndefined(measuredDimensions[1]) ||
  30. !yoga::isUndefined(layout.measuredDimensions[1])) {
  31. isEqual =
  32. isEqual && (measuredDimensions[1] == layout.measuredDimensions[1]);
  33. }
  34. return isEqual;
  35. }