diff --git a/yoga/Yoga.cpp b/yoga/Yoga.cpp index d187bcd0..bc440cbb 100644 --- a/yoga/Yoga.cpp +++ b/yoga/Yoga.cpp @@ -1645,6 +1645,13 @@ static void YGNodeWithMeasureFuncSetMeasuredDimensions( layoutContext); layoutMarkerData.measureCallbacks += 1; + if (reason == LayoutPassReason::kMeasureChild) { + layoutMarkerData.measureChildMeasureCallbacks += 1; + } else if (reason == LayoutPassReason::kFlexMeasure) { + layoutMarkerData.flexMeasureMeasureCallbacks += 1; + } else if (reason == LayoutPassReason::kAbsMeasureChild) { + layoutMarkerData.absMeasureChildMeasureCallbacks += 1; + } Event::publish( node, diff --git a/yoga/event/event.h b/yoga/event/event.h index 65d13f59..e27e53d3 100644 --- a/yoga/event/event.h +++ b/yoga/event/event.h @@ -23,15 +23,6 @@ enum struct LayoutType : int { kCachedMeasure = 3 }; -struct LayoutData { - int layouts; - int measures; - int maxMeasureCache; - int cachedLayouts; - int cachedMeasures; - int measureCallbacks; -}; - enum struct LayoutPassReason : int { kInitial = 0, kAbsLayout = 1, @@ -40,7 +31,20 @@ enum struct LayoutPassReason : int { kFlexLayout = 4, kMeasureChild = 5, kAbsMeasureChild = 6, - kFlexMeasure = 7 + kFlexMeasure = 7, + COUNT +}; + +struct LayoutData { + int layouts; + int measures; + int maxMeasureCache; + int cachedLayouts; + int cachedMeasures; + int measureCallbacks; + int measureChildMeasureCallbacks; + int absMeasureChildMeasureCallbacks; + int flexMeasureMeasureCallbacks; }; const char* LayoutPassReasonToString(const LayoutPassReason value);