From 5fe647673a560cfb680ca777d53bc701c9a49109 Mon Sep 17 00:00:00 2001 From: Joe Vilches Date: Tue, 30 Jan 2024 11:45:49 -0800 Subject: [PATCH] Remove public APIs for YGNodePrint and YGConfigSetPrintTreeFlag (#1567) Summary: X-link: https://github.com/facebook/react-native/pull/42688 We are planning on overhauling NodeToString to output JSON instead of HTML for the purposes of better benchmarking and capturing trees in JSON format to benchmark later. This gives us a bit of a headache as we have to revise several build files to ensure this new library works, ensure that it is only included in certain debug builds, and deal with the benchmark <-> internal cross boundary that arises as the benchmark code (which is a separate binary) tries to interact with it. On top of it all this is really not used at all. The plan is to rip out this functionality and just put it in a separate binary that one can include if they really want to debug. That means that it cannot exist in the public API, so I am removing it here. Private internals come next Changelog: [Internal] Reviewed By: NickGerleman Differential Revision: D53137544 --- java/com/facebook/yoga/YogaConfig.java | 2 - java/com/facebook/yoga/YogaConfigJNIBase.java | 4 - java/com/facebook/yoga/YogaNative.java | 2 - java/com/facebook/yoga/YogaNode.java | 2 - java/com/facebook/yoga/YogaNodeJNIBase.java | 8 - java/jni/YGJNIVanilla.cpp | 25 ---- tests/YGLoggerTest.cpp | 137 ------------------ yoga/YGConfig.cpp | 4 - yoga/YGConfig.h | 5 - yoga/YGNode.cpp | 7 - yoga/YGNode.h | 5 - 11 files changed, 201 deletions(-) delete mode 100644 tests/YGLoggerTest.cpp diff --git a/java/com/facebook/yoga/YogaConfig.java b/java/com/facebook/yoga/YogaConfig.java index 0ca8571e95..c841acd741 100644 --- a/java/com/facebook/yoga/YogaConfig.java +++ b/java/com/facebook/yoga/YogaConfig.java @@ -15,8 +15,6 @@ public abstract class YogaConfig { public abstract void setUseWebDefaults(boolean useWebDefaults); - public abstract void setPrintTreeFlag(boolean enable); - public abstract void setPointScaleFactor(float pixelsInPoint); public abstract void setErrata(YogaErrata errata); diff --git a/java/com/facebook/yoga/YogaConfigJNIBase.java b/java/com/facebook/yoga/YogaConfigJNIBase.java index 07263e6df3..a131cca469 100644 --- a/java/com/facebook/yoga/YogaConfigJNIBase.java +++ b/java/com/facebook/yoga/YogaConfigJNIBase.java @@ -35,10 +35,6 @@ public void setUseWebDefaults(boolean useWebDefaults) { YogaNative.jni_YGConfigSetUseWebDefaultsJNI(mNativePointer, useWebDefaults); } - public void setPrintTreeFlag(boolean enable) { - YogaNative.jni_YGConfigSetPrintTreeFlagJNI(mNativePointer, enable); - } - public void setPointScaleFactor(float pixelsInPoint) { YogaNative.jni_YGConfigSetPointScaleFactorJNI(mNativePointer, pixelsInPoint); } diff --git a/java/com/facebook/yoga/YogaNative.java b/java/com/facebook/yoga/YogaNative.java index 101f0e0edd..9be9edcf87 100644 --- a/java/com/facebook/yoga/YogaNative.java +++ b/java/com/facebook/yoga/YogaNative.java @@ -22,7 +22,6 @@ public class YogaNative { static native void jni_YGConfigFreeJNI(long nativePointer); static native void jni_YGConfigSetExperimentalFeatureEnabledJNI(long nativePointer, int feature, boolean enabled); static native void jni_YGConfigSetUseWebDefaultsJNI(long nativePointer, boolean useWebDefaults); - static native void jni_YGConfigSetPrintTreeFlagJNI(long nativePointer, boolean enable); static native void jni_YGConfigSetPointScaleFactorJNI(long nativePointer, float pixelsInPoint); static native void jni_YGConfigSetErrataJNI(long nativePointer, int errata); static native int jni_YGConfigGetErrataJNI(long nativePointer); @@ -111,7 +110,6 @@ public class YogaNative { static native void jni_YGNodeStyleSetGapJNI(long nativePointer, int gutter, float gapLength); static native void jni_YGNodeSetHasMeasureFuncJNI(long nativePointer, boolean hasMeasureFunc); static native void jni_YGNodeSetHasBaselineFuncJNI(long nativePointer, boolean hasMeasureFunc); - static native void jni_YGNodePrintJNI(long nativePointer); static native void jni_YGNodeSetStyleInputsJNI(long nativePointer, float[] styleInputsArray, int size); static native long jni_YGNodeCloneJNI(long nativePointer); static native void jni_YGNodeSetAlwaysFormsContainingBlockJNI(long nativePointer, boolean alwaysFormContainingBlock); diff --git a/java/com/facebook/yoga/YogaNode.java b/java/com/facebook/yoga/YogaNode.java index 253234378d..4875ac3e8c 100644 --- a/java/com/facebook/yoga/YogaNode.java +++ b/java/com/facebook/yoga/YogaNode.java @@ -221,8 +221,6 @@ public interface Inputs { @Nullable public abstract Object getData(); - public abstract void print(); - public abstract YogaNode cloneWithoutChildren(); public abstract YogaNode cloneWithChildren(); diff --git a/java/com/facebook/yoga/YogaNodeJNIBase.java b/java/com/facebook/yoga/YogaNodeJNIBase.java index d1010f40bb..df958df166 100644 --- a/java/com/facebook/yoga/YogaNodeJNIBase.java +++ b/java/com/facebook/yoga/YogaNodeJNIBase.java @@ -556,14 +556,6 @@ public void setData(Object data) { return mData; } - /** - * Use the set logger (defaults to adb log) to print out the styles, children, and computed layout - * of the tree rooted at this node. - */ - public void print() { - YogaNative.jni_YGNodePrintJNI(mNativePointer); - } - /** * This method replaces the child at childIndex position with the newNode received by parameter. * This is different than calling removeChildAt and addChildAt because this method ONLY replaces diff --git a/java/jni/YGJNIVanilla.cpp b/java/jni/YGJNIVanilla.cpp index ccbf778775..97fb17899c 100644 --- a/java/jni/YGJNIVanilla.cpp +++ b/java/jni/YGJNIVanilla.cpp @@ -66,15 +66,6 @@ static void jni_YGConfigSetUseWebDefaultsJNI( YGConfigSetUseWebDefaults(config, useWebDefaults); } -static void jni_YGConfigSetPrintTreeFlagJNI( - JNIEnv* /*env*/, - jobject /*obj*/, - jlong nativePointer, - jboolean enable) { - const YGConfigRef config = _jlong2YGConfigRef(nativePointer); - YGConfigSetPrintTreeFlag(config, enable); -} - static void jni_YGConfigSetPointScaleFactorJNI( JNIEnv* /*env*/, jobject /*obj*/, @@ -690,18 +681,6 @@ static void jni_YGNodeSetAlwaysFormsContainingBlockJNI( _jlong2YGNodeRef(nativePointer), alwaysFormsContainingBlock); } -static void -jni_YGNodePrintJNI(JNIEnv* /*env*/, jobject /*obj*/, jlong nativePointer) { -#ifdef DEBUG - const YGNodeRef node = _jlong2YGNodeRef(nativePointer); - YGNodePrint( - node, - (YGPrintOptions)(YGPrintOptionsStyle | YGPrintOptionsLayout | YGPrintOptionsChildren)); -#else - (void)nativePointer; -#endif -} - static jlong jni_YGNodeCloneJNI(JNIEnv* /*env*/, jobject /*obj*/, jlong nativePointer) { auto node = _jlong2YGNodeRef(nativePointer); @@ -744,9 +723,6 @@ static JNINativeMethod methods[] = { {"jni_YGConfigSetUseWebDefaultsJNI", "(JZ)V", (void*)jni_YGConfigSetUseWebDefaultsJNI}, - {"jni_YGConfigSetPrintTreeFlagJNI", - "(JZ)V", - (void*)jni_YGConfigSetPrintTreeFlagJNI}, {"jni_YGConfigSetPointScaleFactorJNI", "(JF)V", (void*)jni_YGConfigSetPointScaleFactorJNI}, @@ -970,7 +946,6 @@ static JNINativeMethod methods[] = { {"jni_YGNodeSetAlwaysFormsContainingBlockJNI", "(JZ)V", (void*)jni_YGNodeSetAlwaysFormsContainingBlockJNI}, - {"jni_YGNodePrintJNI", "(J)V", (void*)jni_YGNodePrintJNI}, {"jni_YGNodeCloneJNI", "(J)J", (void*)jni_YGNodeCloneJNI}, }; diff --git a/tests/YGLoggerTest.cpp b/tests/YGLoggerTest.cpp deleted file mode 100644 index acc66152c6..0000000000 --- a/tests/YGLoggerTest.cpp +++ /dev/null @@ -1,137 +0,0 @@ -/* - * Copyright (c) Meta Platforms, Inc. and affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -#include -#include -#include - -#if DEBUG - -namespace { -char writeBuffer[4096]; -int _unmanagedLogger( - const YGConfigConstRef /*config*/, - const YGNodeConstRef /*node*/, - YGLogLevel /*level*/, - const char* format, - va_list args) { - return vsnprintf( - writeBuffer + strlen(writeBuffer), - sizeof(writeBuffer) - strlen(writeBuffer), - format, - args); -} -} // namespace - -TEST(YogaTest, config_print_tree_enabled) { - writeBuffer[0] = '\0'; - const YGConfigRef config = YGConfigNew(); - YGConfigSetPrintTreeFlag(config, true); - YGConfigSetLogger(config, _unmanagedLogger); - const YGNodeRef root = YGNodeNewWithConfig(config); - const YGNodeRef child0 = YGNodeNewWithConfig(config); - const YGNodeRef child1 = YGNodeNewWithConfig(config); - YGNodeInsertChild(root, child0, 0); - YGNodeInsertChild(root, child1, 1); - YGNodeCalculateLayout(root, YGUnitUndefined, YGUnitUndefined, YGDirectionLTR); - YGConfigSetLogger(config, NULL); - YGNodeFreeRecursive(root); - - const char* expected = - "
\n " - "
\n
\n
"; - ASSERT_STREQ(expected, writeBuffer); -} - -TEST(YogaTest, config_print_tree_disabled) { - writeBuffer[0] = '\0'; - const YGConfigRef config = YGConfigNew(); - YGConfigSetPrintTreeFlag(config, false); - YGConfigSetLogger(config, _unmanagedLogger); - const YGNodeRef root = YGNodeNewWithConfig(config); - const YGNodeRef child0 = YGNodeNewWithConfig(config); - const YGNodeRef child1 = YGNodeNewWithConfig(config); - YGNodeInsertChild(root, child0, 0); - YGNodeInsertChild(root, child1, 1); - YGNodeCalculateLayout(root, YGUnitUndefined, YGUnitUndefined, YGDirectionLTR); - YGConfigSetLogger(config, NULL); - YGNodeFreeRecursive(root); - - const char* expected = ""; - ASSERT_STREQ(expected, writeBuffer); -} - -TEST(YogaTest, logger_default_node_should_print_no_style_info) { - writeBuffer[0] = '\0'; - const YGConfigRef config = YGConfigNew(); - YGConfigSetLogger(config, _unmanagedLogger); - const YGNodeRef root = YGNodeNewWithConfig(config); - YGNodeCalculateLayout(root, YGUnitUndefined, YGUnitUndefined, YGDirectionLTR); - YGNodePrint( - root, - (YGPrintOptions)(YGPrintOptionsLayout | YGPrintOptionsChildren | YGPrintOptionsStyle)); - YGConfigSetLogger(config, NULL); - YGNodeFree(root); - - const char* expected = - "
"; - ASSERT_STREQ(expected, writeBuffer); -} - -TEST(YogaTest, logger_node_with_percentage_absolute_position_and_margin) { - writeBuffer[0] = '\0'; - const YGConfigRef config = YGConfigNew(); - YGConfigSetLogger(config, _unmanagedLogger); - const YGNodeRef root = YGNodeNewWithConfig(config); - YGNodeStyleSetPositionType(root, YGPositionTypeAbsolute); - YGNodeStyleSetWidthPercent(root, 50); - YGNodeStyleSetHeightPercent(root, 75); - YGNodeStyleSetFlex(root, 1); - YGNodeStyleSetMargin(root, YGEdgeRight, 10); - YGNodeStyleSetMarginAuto(root, YGEdgeLeft); - YGNodeCalculateLayout(root, YGUnitUndefined, YGUnitUndefined, YGDirectionLTR); - YGNodePrint( - root, - (YGPrintOptions)(YGPrintOptionsLayout | YGPrintOptionsChildren | YGPrintOptionsStyle)); - YGConfigSetLogger(config, NULL); - YGNodeFree(root); - - const char* expected = - "
"; - ASSERT_STREQ(expected, writeBuffer); -} - -TEST(YogaTest, logger_node_with_children_should_print_indented) { - writeBuffer[0] = '\0'; - const YGConfigRef config = YGConfigNew(); - YGConfigSetLogger(config, _unmanagedLogger); - const YGNodeRef root = YGNodeNewWithConfig(config); - const YGNodeRef child0 = YGNodeNewWithConfig(config); - const YGNodeRef child1 = YGNodeNewWithConfig(config); - YGNodeInsertChild(root, child0, 0); - YGNodeInsertChild(root, child1, 1); - YGNodeCalculateLayout(root, YGUnitUndefined, YGUnitUndefined, YGDirectionLTR); - YGNodePrint( - root, - (YGPrintOptions)(YGPrintOptionsLayout | YGPrintOptionsChildren | YGPrintOptionsStyle)); - YGConfigSetLogger(config, NULL); - YGNodeFreeRecursive(root); - - const char* expected = - "
\n " - "
\n
\n
"; - ASSERT_STREQ(expected, writeBuffer); -} - -#endif diff --git a/yoga/YGConfig.cpp b/yoga/YGConfig.cpp index 970a740e52..b3a82e1adb 100644 --- a/yoga/YGConfig.cpp +++ b/yoga/YGConfig.cpp @@ -90,7 +90,3 @@ void YGConfigSetCloneNodeFunc( const YGCloneNodeFunc callback) { resolveRef(config)->setCloneNodeCallback(callback); } - -void YGConfigSetPrintTreeFlag(YGConfigRef config, bool enabled) { - resolveRef(config)->setShouldPrintTree(enabled); -} diff --git a/yoga/YGConfig.h b/yoga/YGConfig.h index b8da4c7c0c..7c1a8f297d 100644 --- a/yoga/YGConfig.h +++ b/yoga/YGConfig.h @@ -155,9 +155,4 @@ YG_EXPORT void YGConfigSetCloneNodeFunc( YGConfigRef config, YGCloneNodeFunc callback); -/** - * Allows printing the Yoga node tree during layout for debugging purposes. - */ -YG_EXPORT void YGConfigSetPrintTreeFlag(YGConfigRef config, bool enabled); - YG_EXTERN_C_END diff --git a/yoga/YGNode.cpp b/yoga/YGNode.cpp index d91bc4eb13..d3265e0149 100644 --- a/yoga/YGNode.cpp +++ b/yoga/YGNode.cpp @@ -11,7 +11,6 @@ #include #include #include -#include #include #include @@ -330,12 +329,6 @@ void YGNodeSetAlwaysFormsContainingBlock( resolveRef(node)->setAlwaysFormsContainingBlock(alwaysFormsContainingBlock); } -#ifdef DEBUG -void YGNodePrint(const YGNodeConstRef node, const YGPrintOptions options) { - yoga::print(resolveRef(node), scopedEnum(options)); -} -#endif - // TODO: This leaks internal details to the public API. Remove after removing // ComponentKit usage of it. bool YGNodeCanUseCachedMeasurement( diff --git a/yoga/YGNode.h b/yoga/YGNode.h index 12d40f75df..e6f233acea 100644 --- a/yoga/YGNode.h +++ b/yoga/YGNode.h @@ -273,11 +273,6 @@ YG_EXPORT void YGNodeSetAlwaysFormsContainingBlock( YGNodeRef node, bool alwaysFormsContainingBlock); -/** - * Print a node to log output. - */ -YG_EXPORT void YGNodePrint(YGNodeConstRef node, YGPrintOptions options); - /** * @deprecated */