From 095c991b85a62aeb19d546b094d970fe06fc3e97 Mon Sep 17 00:00:00 2001 From: Sidharth Guglani Date: Wed, 31 Jul 2019 14:33:36 -0700 Subject: [PATCH] Added counts for measure callbacks reasons in an array inside qpl annotations Summary: Added an array to maintain the counts of each of the reason of measure callbacks and this is now added as qpl metadata in Layout Calculation qpl event Reviewed By: davidaurelio Differential Revision: D16516379 fbshipit-source-id: 201c5d2463f0a921841a0bbfec8f4d5e007000c8 --- yoga/Yoga.cpp | 7 +++++++ yoga/event/event.h | 24 ++++++++++++++---------- 2 files changed, 21 insertions(+), 10 deletions(-) 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);