move SkTPin to include/private

Change-Id: Ib0dc823d331a7cddc5da1d1be83136ce803a7871
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/327783
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt
index 29f7b88..a019c11 100644
--- a/RELEASE_NOTES.txt
+++ b/RELEASE_NOTES.txt
@@ -9,6 +9,8 @@
 
   * <insert new release notes here>
 
+  * SkTPin() removed from public API.
+
   * Add new SkImageFilters::Blend factory function, in place of the now deprecated
     SkImageFilters::Xfermode factory function. Behavior is identical, but name better matches
     conventions in SkShader and SkColorFilter.
diff --git a/gm/animatedimageblurs.cpp b/gm/animatedimageblurs.cpp
index 30cfbd5..208fb41 100644
--- a/gm/animatedimageblurs.cpp
+++ b/gm/animatedimageblurs.cpp
@@ -17,6 +17,7 @@
 #include "include/core/SkString.h"
 #include "include/core/SkTypes.h"
 #include "include/effects/SkImageFilters.h"
+#include "include/private/SkTPin.h"
 #include "include/utils/SkRandom.h"
 #include "tools/timer/TimeUtils.h"
 
diff --git a/gm/jpg_color_cube.cpp b/gm/jpg_color_cube.cpp
index e9940d9..ac2ad85 100644
--- a/gm/jpg_color_cube.cpp
+++ b/gm/jpg_color_cube.cpp
@@ -17,6 +17,7 @@
 #include "include/core/SkSize.h"
 #include "include/core/SkString.h"
 #include "include/core/SkTypes.h"
+#include "include/private/SkTPin.h"
 
 #include <utility>
 
diff --git a/gm/p3.cpp b/gm/p3.cpp
index d897f9d..73a048f 100644
--- a/gm/p3.cpp
+++ b/gm/p3.cpp
@@ -26,6 +26,7 @@
 #include "include/core/SkTypes.h"
 #include "include/effects/SkDashPathEffect.h"
 #include "include/effects/SkGradientShader.h"
+#include "include/private/SkTPin.h"
 #include "src/core/SkColorSpaceXformSteps.h"
 
 #include <math.h>
diff --git a/gm/wacky_yuv_formats.cpp b/gm/wacky_yuv_formats.cpp
index c198715..afdc4cf 100644
--- a/gm/wacky_yuv_formats.cpp
+++ b/gm/wacky_yuv_formats.cpp
@@ -42,6 +42,7 @@
 #include "include/private/GrTypesPriv.h"
 #include "include/private/SkTArray.h"
 #include "include/private/SkTDArray.h"
+#include "include/private/SkTPin.h"
 #include "include/private/SkTemplates.h"
 #include "include/utils/SkTextUtils.h"
 #include "src/core/SkConvertPixels.h"
diff --git a/include/core/SkColorPriv.h b/include/core/SkColorPriv.h
index 19b74bc..29f6433 100644
--- a/include/core/SkColorPriv.h
+++ b/include/core/SkColorPriv.h
@@ -10,6 +10,7 @@
 
 #include "include/core/SkColor.h"
 #include "include/core/SkMath.h"
+#include "include/private/SkTPin.h"
 #include "include/private/SkTo.h"
 
 /** Turn 0..255 into 0..256 by adding 1 at the half-way point. Used to turn a
diff --git a/include/core/SkFontStyle.h b/include/core/SkFontStyle.h
index dfb2ec9..04893ef 100644
--- a/include/core/SkFontStyle.h
+++ b/include/core/SkFontStyle.h
@@ -9,6 +9,7 @@
 #define SkFontStyle_DEFINED
 
 #include "include/core/SkTypes.h"
+#include "include/private/SkTPin.h"
 
 class SK_API SkFontStyle {
 public:
diff --git a/include/core/SkTypes.h b/include/core/SkTypes.h
index 34938b9..e136e24 100644
--- a/include/core/SkTypes.h
+++ b/include/core/SkTypes.h
@@ -581,23 +581,6 @@
     return value;
 }
 
-/** @return x pinned (clamped) between lo and hi, inclusively.
-
-    Unlike std::clamp(), SkTPin() always returns a value between lo and hi.
-    If x is NaN, SkTPin() returns hi but std::clamp() returns NaN.
-*/
-template <typename T>
-static constexpr const T& SkTPin(const T& x, const T& lo, const T& hi) {
-#if 0
-    return std::max(std::min(hi, x), lo);
-#else
-    // To avoid the need to #include <algorithm>, we use this equivalent logic:
-    return x < lo ? lo
-        :  x < hi ? x
-        : /*else*/  hi;
-#endif
-}
-
 ////////////////////////////////////////////////////////////////////////////////
 
 /** Indicates whether an allocation should count against a cache budget.
diff --git a/include/private/SkFixed.h b/include/private/SkFixed.h
index 8c5c2db..e34c19f 100644
--- a/include/private/SkFixed.h
+++ b/include/private/SkFixed.h
@@ -11,6 +11,7 @@
 #include "include/core/SkScalar.h"
 #include "include/core/SkTypes.h"
 #include "include/private/SkSafe_math.h"
+#include "include/private/SkTPin.h"
 #include "include/private/SkTo.h"
 
 /** \file SkFixed.h
diff --git a/include/private/SkTPin.h b/include/private/SkTPin.h
new file mode 100644
index 0000000..331f65f
--- /dev/null
+++ b/include/private/SkTPin.h
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2020 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef SkTPin_DEFINED
+#define SkTPin_DEFINED
+
+/** @return x pinned (clamped) between lo and hi, inclusively.
+
+    Unlike std::clamp(), SkTPin() always returns a value between lo and hi.
+    If x is NaN, SkTPin() returns hi but std::clamp() returns NaN.
+*/
+template <typename T>
+static constexpr const T& SkTPin(const T& x, const T& lo, const T& hi) {
+    // TODO: return std::max(std::min(hi, x), lo)
+    // TODO: return std::max(lo, std::min(x, hi)) ?   (clamps NaN to lo)
+    return x < lo ? lo
+        :  x < hi ? x
+        : /*else*/  hi;
+}
+
+#endif
diff --git a/modules/particles/src/SkParticleBinding.cpp b/modules/particles/src/SkParticleBinding.cpp
index a03a18d..899de5b 100644
--- a/modules/particles/src/SkParticleBinding.cpp
+++ b/modules/particles/src/SkParticleBinding.cpp
@@ -11,6 +11,7 @@
 #include "include/core/SkContourMeasure.h"
 #include "include/core/SkImage.h"
 #include "include/core/SkPath.h"
+#include "include/private/SkTPin.h"
 #include "include/utils/SkParsePath.h"
 #include "include/utils/SkTextUtils.h"
 #include "modules/particles/include/SkParticleEffect.h"
diff --git a/modules/particles/src/SkParticleDrawable.cpp b/modules/particles/src/SkParticleDrawable.cpp
index 7dbe97f..91c4a33 100644
--- a/modules/particles/src/SkParticleDrawable.cpp
+++ b/modules/particles/src/SkParticleDrawable.cpp
@@ -14,6 +14,7 @@
 #include "include/core/SkRect.h"
 #include "include/core/SkString.h"
 #include "include/core/SkSurface.h"
+#include "include/private/SkTPin.h"
 #include "modules/particles/include/SkParticleData.h"
 #include "modules/skresources/include/SkResources.h"
 #include "src/core/SkAutoMalloc.h"
diff --git a/modules/particles/src/SkParticleEffect.cpp b/modules/particles/src/SkParticleEffect.cpp
index b754519..6d93287 100644
--- a/modules/particles/src/SkParticleEffect.cpp
+++ b/modules/particles/src/SkParticleEffect.cpp
@@ -8,6 +8,7 @@
 #include "modules/particles/include/SkParticleEffect.h"
 
 #include "include/core/SkPaint.h"
+#include "include/private/SkTPin.h"
 #include "modules/particles/include/SkParticleBinding.h"
 #include "modules/particles/include/SkParticleDrawable.h"
 #include "modules/particles/include/SkReflected.h"
diff --git a/modules/skottie/src/Composition.cpp b/modules/skottie/src/Composition.cpp
index a9971e0..ee3ddf0 100644
--- a/modules/skottie/src/Composition.cpp
+++ b/modules/skottie/src/Composition.cpp
@@ -8,6 +8,7 @@
 #include "modules/skottie/src/Composition.h"
 
 #include "include/core/SkCanvas.h"
+#include "include/private/SkTPin.h"
 #include "modules/skottie/src/Camera.h"
 #include "modules/skottie/src/SkottieJson.h"
 #include "modules/skottie/src/SkottiePriv.h"
diff --git a/modules/skottie/src/Skottie.cpp b/modules/skottie/src/Skottie.cpp
index 70d9d2d..0393b30 100644
--- a/modules/skottie/src/Skottie.cpp
+++ b/modules/skottie/src/Skottie.cpp
@@ -15,6 +15,7 @@
 #include "include/core/SkPoint.h"
 #include "include/core/SkStream.h"
 #include "include/private/SkTArray.h"
+#include "include/private/SkTPin.h"
 #include "include/private/SkTo.h"
 #include "modules/skottie/include/ExternalLayer.h"
 #include "modules/skottie/include/SkottieProperty.h"
diff --git a/modules/skottie/src/SkottieTool.cpp b/modules/skottie/src/SkottieTool.cpp
index 9ce6288..9b16fda 100644
--- a/modules/skottie/src/SkottieTool.cpp
+++ b/modules/skottie/src/SkottieTool.cpp
@@ -11,6 +11,7 @@
 #include "include/core/SkStream.h"
 #include "include/core/SkSurface.h"
 #include "include/encode/SkPngEncoder.h"
+#include "include/private/SkTPin.h"
 #include "modules/skottie/include/Skottie.h"
 #include "modules/skottie/utils/SkottieUtils.h"
 #include "modules/skresources/include/SkResources.h"
diff --git a/modules/skottie/src/animator/VectorKeyframeAnimator.cpp b/modules/skottie/src/animator/VectorKeyframeAnimator.cpp
index 386093c..a591c36 100644
--- a/modules/skottie/src/animator/VectorKeyframeAnimator.cpp
+++ b/modules/skottie/src/animator/VectorKeyframeAnimator.cpp
@@ -9,6 +9,7 @@
 
 #include "include/core/SkTypes.h"
 #include "include/private/SkNx.h"
+#include "include/private/SkTPin.h"
 #include "modules/skottie/src/SkottieJson.h"
 #include "modules/skottie/src/SkottieValue.h"
 #include "modules/skottie/src/animator/Animator.h"
diff --git a/modules/skottie/src/effects/BrightnessContrastEffect.cpp b/modules/skottie/src/effects/BrightnessContrastEffect.cpp
index ae9ef2c..76ef37c 100644
--- a/modules/skottie/src/effects/BrightnessContrastEffect.cpp
+++ b/modules/skottie/src/effects/BrightnessContrastEffect.cpp
@@ -9,6 +9,7 @@
 
 #include "include/core/SkColorFilter.h"
 #include "include/effects/SkRuntimeEffect.h"
+#include "include/private/SkTPin.h"
 #include "modules/skottie/src/Adapter.h"
 #include "modules/skottie/src/SkottieJson.h"
 #include "modules/skottie/src/SkottieValue.h"
diff --git a/modules/skottie/src/effects/DropShadowEffect.cpp b/modules/skottie/src/effects/DropShadowEffect.cpp
index 3302e80..e071fee 100644
--- a/modules/skottie/src/effects/DropShadowEffect.cpp
+++ b/modules/skottie/src/effects/DropShadowEffect.cpp
@@ -7,6 +7,7 @@
 
 #include "modules/skottie/src/effects/Effects.h"
 
+#include "include/private/SkTPin.h"
 #include "modules/skottie/src/SkottieValue.h"
 #include "modules/sksg/include/SkSGRenderEffect.h"
 #include "src/utils/SkJSON.h"
diff --git a/modules/skottie/src/effects/FillEffect.cpp b/modules/skottie/src/effects/FillEffect.cpp
index 2b9b353..5e40052 100644
--- a/modules/skottie/src/effects/FillEffect.cpp
+++ b/modules/skottie/src/effects/FillEffect.cpp
@@ -7,6 +7,7 @@
 
 #include "modules/skottie/src/effects/Effects.h"
 
+#include "include/private/SkTPin.h"
 #include "modules/skottie/src/Adapter.h"
 #include "modules/skottie/src/SkottieValue.h"
 #include "modules/sksg/include/SkSGColorFilter.h"
diff --git a/modules/skottie/src/effects/GaussianBlurEffect.cpp b/modules/skottie/src/effects/GaussianBlurEffect.cpp
index ff634ee..ac1d7c7 100644
--- a/modules/skottie/src/effects/GaussianBlurEffect.cpp
+++ b/modules/skottie/src/effects/GaussianBlurEffect.cpp
@@ -7,6 +7,7 @@
 
 #include "modules/skottie/src/effects/Effects.h"
 
+#include "include/private/SkTPin.h"
 #include "modules/skottie/src/SkottieValue.h"
 #include "modules/sksg/include/SkSGRenderEffect.h"
 #include "src/utils/SkJSON.h"
diff --git a/modules/skottie/src/effects/GlowStyles.cpp b/modules/skottie/src/effects/GlowStyles.cpp
index 5cc2e9d..7b574c9 100644
--- a/modules/skottie/src/effects/GlowStyles.cpp
+++ b/modules/skottie/src/effects/GlowStyles.cpp
@@ -10,6 +10,7 @@
 #include "include/core/SkColorFilter.h"
 #include "include/effects/SkColorMatrix.h"
 #include "include/effects/SkImageFilters.h"
+#include "include/private/SkTPin.h"
 #include "modules/skottie/src/Adapter.h"
 #include "modules/skottie/src/SkottieJson.h"
 #include "modules/skottie/src/SkottieValue.h"
diff --git a/modules/skottie/src/effects/HueSaturationEffect.cpp b/modules/skottie/src/effects/HueSaturationEffect.cpp
index 5014193..0015d6e 100644
--- a/modules/skottie/src/effects/HueSaturationEffect.cpp
+++ b/modules/skottie/src/effects/HueSaturationEffect.cpp
@@ -7,6 +7,7 @@
 
 #include "modules/skottie/src/effects/Effects.h"
 
+#include "include/private/SkTPin.h"
 #include "modules/skottie/src/SkottieJson.h"
 #include "modules/skottie/src/SkottieValue.h"
 #include "modules/sksg/include/SkSGColorFilter.h"
diff --git a/modules/skottie/src/effects/LevelsEffect.cpp b/modules/skottie/src/effects/LevelsEffect.cpp
index 7af97c5..5f76b5d 100644
--- a/modules/skottie/src/effects/LevelsEffect.cpp
+++ b/modules/skottie/src/effects/LevelsEffect.cpp
@@ -8,6 +8,7 @@
 #include "modules/skottie/src/effects/Effects.h"
 
 #include "include/effects/SkTableColorFilter.h"
+#include "include/private/SkTPin.h"
 #include "modules/skottie/src/Adapter.h"
 #include "modules/skottie/src/SkottieValue.h"
 #include "modules/sksg/include/SkSGColorFilter.h"
diff --git a/modules/skottie/src/effects/LinearWipeEffect.cpp b/modules/skottie/src/effects/LinearWipeEffect.cpp
index 713f97e..cb68f80 100644
--- a/modules/skottie/src/effects/LinearWipeEffect.cpp
+++ b/modules/skottie/src/effects/LinearWipeEffect.cpp
@@ -9,6 +9,7 @@
 
 #include "include/effects/SkGradientShader.h"
 #include "include/effects/SkShaderMaskFilter.h"
+#include "include/private/SkTPin.h"
 #include "modules/skottie/src/SkottieValue.h"
 #include "modules/sksg/include/SkSGRenderEffect.h"
 #include "src/utils/SkJSON.h"
diff --git a/modules/skottie/src/effects/MotionTileEffect.cpp b/modules/skottie/src/effects/MotionTileEffect.cpp
index 172a4ac..5e2e15a 100644
--- a/modules/skottie/src/effects/MotionTileEffect.cpp
+++ b/modules/skottie/src/effects/MotionTileEffect.cpp
@@ -11,6 +11,7 @@
 #include "include/core/SkPictureRecorder.h"
 #include "include/core/SkShader.h"
 #include "include/effects/SkGradientShader.h"
+#include "include/private/SkTPin.h"
 #include "modules/skottie/src/Adapter.h"
 #include "modules/skottie/src/SkottieValue.h"
 #include "modules/sksg/include/SkSGRenderNode.h"
diff --git a/modules/skottie/src/effects/ShadowStyles.cpp b/modules/skottie/src/effects/ShadowStyles.cpp
index 2323418..5b4549e 100644
--- a/modules/skottie/src/effects/ShadowStyles.cpp
+++ b/modules/skottie/src/effects/ShadowStyles.cpp
@@ -10,6 +10,7 @@
 #include "include/core/SkColorFilter.h"
 #include "include/effects/SkColorMatrix.h"
 #include "include/effects/SkImageFilters.h"
+#include "include/private/SkTPin.h"
 #include "modules/skottie/src/Adapter.h"
 #include "modules/skottie/src/SkottieValue.h"
 #include "modules/sksg/include/SkSGRenderEffect.h"
diff --git a/modules/skottie/src/effects/ShiftChannelsEffect.cpp b/modules/skottie/src/effects/ShiftChannelsEffect.cpp
index f6d3c02..cbed0be 100644
--- a/modules/skottie/src/effects/ShiftChannelsEffect.cpp
+++ b/modules/skottie/src/effects/ShiftChannelsEffect.cpp
@@ -8,6 +8,7 @@
 #include "modules/skottie/src/effects/Effects.h"
 
 #include "include/private/SkColorData.h"
+#include "include/private/SkTPin.h"
 #include "modules/skottie/src/SkottieJson.h"
 #include "modules/skottie/src/SkottieValue.h"
 #include "modules/sksg/include/SkSGColorFilter.h"
diff --git a/modules/skottie/src/layers/shapelayer/Gradient.cpp b/modules/skottie/src/layers/shapelayer/Gradient.cpp
index 318ed03..19c0ef3 100644
--- a/modules/skottie/src/layers/shapelayer/Gradient.cpp
+++ b/modules/skottie/src/layers/shapelayer/Gradient.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 
+#include "include/private/SkTPin.h"
 #include "modules/skottie/src/Adapter.h"
 #include "modules/skottie/src/SkottieJson.h"
 #include "modules/skottie/src/SkottiePriv.h"
diff --git a/modules/skottie/src/layers/shapelayer/OffsetPaths.cpp b/modules/skottie/src/layers/shapelayer/OffsetPaths.cpp
index 527473a..d50f308 100644
--- a/modules/skottie/src/layers/shapelayer/OffsetPaths.cpp
+++ b/modules/skottie/src/layers/shapelayer/OffsetPaths.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 
+#include "include/private/SkTPin.h"
 #include "modules/skottie/src/Adapter.h"
 #include "modules/skottie/src/SkottieJson.h"
 #include "modules/skottie/src/SkottiePriv.h"
diff --git a/modules/skottie/src/layers/shapelayer/Polystar.cpp b/modules/skottie/src/layers/shapelayer/Polystar.cpp
index 3e903634..f573f34 100644
--- a/modules/skottie/src/layers/shapelayer/Polystar.cpp
+++ b/modules/skottie/src/layers/shapelayer/Polystar.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "include/core/SkPathBuilder.h"
+#include "include/private/SkTPin.h"
 #include "modules/skottie/src/Adapter.h"
 #include "modules/skottie/src/SkottieJson.h"
 #include "modules/skottie/src/SkottiePriv.h"
diff --git a/modules/skottie/src/layers/shapelayer/Repeater.cpp b/modules/skottie/src/layers/shapelayer/Repeater.cpp
index 2788e42..91cb4d2 100644
--- a/modules/skottie/src/layers/shapelayer/Repeater.cpp
+++ b/modules/skottie/src/layers/shapelayer/Repeater.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 
+#include "include/private/SkTPin.h"
 #include "modules/skottie/src/Adapter.h"
 #include "modules/skottie/src/SkottieJson.h"
 #include "modules/skottie/src/SkottiePriv.h"
diff --git a/modules/skottie/src/text/RangeSelector.cpp b/modules/skottie/src/text/RangeSelector.cpp
index 006331b..b32ea44 100644
--- a/modules/skottie/src/text/RangeSelector.cpp
+++ b/modules/skottie/src/text/RangeSelector.cpp
@@ -8,6 +8,7 @@
 #include "modules/skottie/src/text/RangeSelector.h"
 
 #include "include/core/SkCubicMap.h"
+#include "include/private/SkTPin.h"
 #include "modules/skottie/src/SkottieJson.h"
 #include "modules/skottie/src/SkottieValue.h"
 #include "modules/skottie/src/animator/Animator.h"
diff --git a/modules/skottie/src/text/TextAdapter.cpp b/modules/skottie/src/text/TextAdapter.cpp
index e08c364..e27cd05 100644
--- a/modules/skottie/src/text/TextAdapter.cpp
+++ b/modules/skottie/src/text/TextAdapter.cpp
@@ -9,6 +9,7 @@
 
 #include "include/core/SkFontMgr.h"
 #include "include/core/SkM44.h"
+#include "include/private/SkTPin.h"
 #include "modules/skottie/src/SkottieJson.h"
 #include "modules/skottie/src/text/RangeSelector.h"
 #include "modules/skottie/src/text/TextAnimator.h"
diff --git a/modules/skresources/src/SkResources.cpp b/modules/skresources/src/SkResources.cpp
index 01ea9a3..3d49313 100644
--- a/modules/skresources/src/SkResources.cpp
+++ b/modules/skresources/src/SkResources.cpp
@@ -10,6 +10,7 @@
 #include "include/codec/SkCodec.h"
 #include "include/core/SkData.h"
 #include "include/core/SkImage.h"
+#include "include/private/SkTPin.h"
 #include "include/utils/SkAnimCodecPlayer.h"
 #include "include/utils/SkBase64.h"
 #include "src/core/SkOSFile.h"
diff --git a/modules/sksg/samples/SampleSVGPong.cpp b/modules/sksg/samples/SampleSVGPong.cpp
index 159de89..79bb22c 100644
--- a/modules/sksg/samples/SampleSVGPong.cpp
+++ b/modules/sksg/samples/SampleSVGPong.cpp
@@ -8,6 +8,7 @@
 #include "include/core/SkCanvas.h"
 #include "include/core/SkPathBuilder.h"
 #include "include/core/SkRRect.h"
+#include "include/private/SkTPin.h"
 #include "include/utils/SkRandom.h"
 #include "samplecode/Sample.h"
 #include "tools/timer/TimeUtils.h"
diff --git a/modules/sksg/src/SkSGGradient.cpp b/modules/sksg/src/SkSGGradient.cpp
index 1ab7d29..70ab2cd 100644
--- a/modules/sksg/src/SkSGGradient.cpp
+++ b/modules/sksg/src/SkSGGradient.cpp
@@ -9,6 +9,7 @@
 
 #include "include/core/SkPaint.h"
 #include "include/effects/SkGradientShader.h"
+#include "include/private/SkTPin.h"
 
 namespace sksg {
 
diff --git a/modules/sksg/src/SkSGPaint.cpp b/modules/sksg/src/SkSGPaint.cpp
index 9b69f56..fc89cd0 100644
--- a/modules/sksg/src/SkSGPaint.cpp
+++ b/modules/sksg/src/SkSGPaint.cpp
@@ -7,6 +7,7 @@
 
 #include "modules/sksg/include/SkSGPaint.h"
 
+#include "include/private/SkTPin.h"
 #include "modules/sksg/include/SkSGRenderEffect.h"
 
 namespace sksg {
diff --git a/modules/svg/src/SkSVGAttributeParser.cpp b/modules/svg/src/SkSVGAttributeParser.cpp
index 3ecd920..9914456 100644
--- a/modules/svg/src/SkSVGAttributeParser.cpp
+++ b/modules/svg/src/SkSVGAttributeParser.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 
+#include "include/private/SkTPin.h"
 #include "include/utils/SkParse.h"
 #include "modules/svg/include/SkSVGAttributeParser.h"
 #include "modules/svg/include/SkSVGTypes.h"
diff --git a/modules/svg/src/SkSVGGradient.cpp b/modules/svg/src/SkSVGGradient.cpp
index b868f11..656920c 100644
--- a/modules/svg/src/SkSVGGradient.cpp
+++ b/modules/svg/src/SkSVGGradient.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 
+#include "include/private/SkTPin.h"
 #include "modules/svg/include/SkSVGGradient.h"
 #include "modules/svg/include/SkSVGRenderContext.h"
 #include "modules/svg/include/SkSVGStop.h"
diff --git a/modules/svg/src/SkSVGNode.cpp b/modules/svg/src/SkSVGNode.cpp
index ea19342..d634722 100644
--- a/modules/svg/src/SkSVGNode.cpp
+++ b/modules/svg/src/SkSVGNode.cpp
@@ -8,6 +8,7 @@
 #include "include/core/SkCanvas.h"
 #include "include/core/SkMatrix.h"
 #include "include/pathops/SkPathOps.h"
+#include "include/private/SkTPin.h"
 #include "modules/svg/include/SkSVGNode.h"
 #include "modules/svg/include/SkSVGRenderContext.h"
 #include "modules/svg/include/SkSVGValue.h"
diff --git a/modules/svg/src/SkSVGStop.cpp b/modules/svg/src/SkSVGStop.cpp
index 4705581..edf39bc 100644
--- a/modules/svg/src/SkSVGStop.cpp
+++ b/modules/svg/src/SkSVGStop.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 
+#include "include/private/SkTPin.h"
 #include "modules/svg/include/SkSVGRenderContext.h"
 #include "modules/svg/include/SkSVGStop.h"
 #include "modules/svg/include/SkSVGValue.h"
diff --git a/samplecode/SampleDegenerateQuads.cpp b/samplecode/SampleDegenerateQuads.cpp
index ddf23e7..cdad554 100644
--- a/samplecode/SampleDegenerateQuads.cpp
+++ b/samplecode/SampleDegenerateQuads.cpp
@@ -14,6 +14,7 @@
 #include "include/core/SkPaint.h"
 #include "include/effects/SkDashPathEffect.h"
 #include "include/pathops/SkPathOps.h"
+#include "include/private/SkTPin.h"
 
 // Draw a line through the two points, outset by a fixed length in screen space
 static void draw_extended_line(SkCanvas* canvas, const SkPaint paint,
diff --git a/src/core/SkBitmapProcState.cpp b/src/core/SkBitmapProcState.cpp
index a18c676..096a8c6 100755
--- a/src/core/SkBitmapProcState.cpp
+++ b/src/core/SkBitmapProcState.cpp
@@ -10,6 +10,7 @@
 #include "include/core/SkShader.h"
 #include "include/private/SkColorData.h"
 #include "include/private/SkMacros.h"
+#include "include/private/SkTPin.h"
 #include "src/core/SkBitmapCache.h"
 #include "src/core/SkBitmapController.h"
 #include "src/core/SkBitmapProcState.h"
diff --git a/src/core/SkBitmapProcState_matrixProcs.cpp b/src/core/SkBitmapProcState_matrixProcs.cpp
index 8fa1a0b..fadc158 100755
--- a/src/core/SkBitmapProcState_matrixProcs.cpp
+++ b/src/core/SkBitmapProcState_matrixProcs.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "include/core/SkShader.h"
+#include "include/private/SkTPin.h"
 #include "include/private/SkTo.h"
 #include "src/core/SkBitmapProcState.h"
 #include "src/core/SkUtils.h"
diff --git a/src/core/SkBlurMask.cpp b/src/core/SkBlurMask.cpp
index 9d51f55..9d76f4a 100644
--- a/src/core/SkBlurMask.cpp
+++ b/src/core/SkBlurMask.cpp
@@ -9,6 +9,7 @@
 
 #include "include/core/SkColorPriv.h"
 #include "include/core/SkMath.h"
+#include "include/private/SkTPin.h"
 #include "include/private/SkTemplates.h"
 #include "include/private/SkTo.h"
 #include "src/core/SkEndian.h"
diff --git a/src/core/SkColor.cpp b/src/core/SkColor.cpp
index 0303624..2fa8ed3 100644
--- a/src/core/SkColor.cpp
+++ b/src/core/SkColor.cpp
@@ -8,6 +8,7 @@
 #include "include/core/SkColor.h"
 #include "include/private/SkColorData.h"
 #include "include/private/SkFixed.h"
+#include "include/private/SkTPin.h"
 
 SkPMColor SkPreMultiplyARGB(U8CPU a, U8CPU r, U8CPU g, U8CPU b) {
     return SkPremultiplyARGBInline(a, r, g, b);
diff --git a/src/core/SkCompressedDataUtils.cpp b/src/core/SkCompressedDataUtils.cpp
index 9409c55..308d8a3 100644
--- a/src/core/SkCompressedDataUtils.cpp
+++ b/src/core/SkCompressedDataUtils.cpp
@@ -10,6 +10,7 @@
 #include "include/core/SkColorPriv.h"
 #include "include/core/SkData.h"
 #include "include/private/SkColorData.h"
+#include "include/private/SkTPin.h"
 #include "src/core/SkMathPriv.h"
 #include "src/core/SkMipmap.h"
 
diff --git a/src/core/SkCubicMap.cpp b/src/core/SkCubicMap.cpp
index e6bf714..52a6427 100644
--- a/src/core/SkCubicMap.cpp
+++ b/src/core/SkCubicMap.cpp
@@ -7,6 +7,7 @@
 
 #include "include/core/SkCubicMap.h"
 #include "include/private/SkNx.h"
+#include "include/private/SkTPin.h"
 #include "src/core/SkOpts.h"
 
 //#define CUBICMAP_TRACK_MAX_ERROR
diff --git a/src/core/SkDistanceFieldGen.cpp b/src/core/SkDistanceFieldGen.cpp
index ffdbdc6..6d8ff07 100644
--- a/src/core/SkDistanceFieldGen.cpp
+++ b/src/core/SkDistanceFieldGen.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "include/private/SkColorData.h"
+#include "include/private/SkTPin.h"
 #include "include/private/SkTemplates.h"
 #include "src/core/SkAutoMalloc.h"
 #include "src/core/SkDistanceFieldGen.h"
diff --git a/src/core/SkDrawShadowInfo.h b/src/core/SkDrawShadowInfo.h
index 1d0415f..b129453 100644
--- a/src/core/SkDrawShadowInfo.h
+++ b/src/core/SkDrawShadowInfo.h
@@ -11,6 +11,7 @@
 #include "include/core/SkColor.h"
 #include "include/core/SkPoint.h"
 #include "include/core/SkPoint3.h"
+#include "include/private/SkTPin.h"
 
 class SkMatrix;
 class SkPath;
diff --git a/src/core/SkGeometry.cpp b/src/core/SkGeometry.cpp
index b858060..0aad23a 100644
--- a/src/core/SkGeometry.cpp
+++ b/src/core/SkGeometry.cpp
@@ -8,6 +8,7 @@
 #include "include/core/SkMatrix.h"
 #include "include/core/SkPoint3.h"
 #include "include/private/SkNx.h"
+#include "include/private/SkTPin.h"
 #include "src/core/SkGeometry.h"
 #include "src/core/SkPointPriv.h"
 
diff --git a/src/core/SkMaskBlurFilter.cpp b/src/core/SkMaskBlurFilter.cpp
index a7402e3..50acf40 100644
--- a/src/core/SkMaskBlurFilter.cpp
+++ b/src/core/SkMaskBlurFilter.cpp
@@ -10,6 +10,7 @@
 #include "include/core/SkColorPriv.h"
 #include "include/private/SkMalloc.h"
 #include "include/private/SkNx.h"
+#include "include/private/SkTPin.h"
 #include "include/private/SkTemplates.h"
 #include "include/private/SkTo.h"
 #include "src/core/SkArenaAlloc.h"
diff --git a/src/core/SkPath_serial.cpp b/src/core/SkPath_serial.cpp
index 499ff82..65e6e92 100644
--- a/src/core/SkPath_serial.cpp
+++ b/src/core/SkPath_serial.cpp
@@ -8,6 +8,7 @@
 #include "include/core/SkData.h"
 #include "include/core/SkMath.h"
 #include "include/private/SkPathRef.h"
+#include "include/private/SkTPin.h"
 #include "include/private/SkTo.h"
 #include "src/core/SkBuffer.h"
 #include "src/core/SkPathPriv.h"
diff --git a/src/core/SkPixmap.cpp b/src/core/SkPixmap.cpp
index bfc1831..290858a 100644
--- a/src/core/SkPixmap.cpp
+++ b/src/core/SkPixmap.cpp
@@ -15,6 +15,7 @@
 #include "include/private/SkHalf.h"
 #include "include/private/SkImageInfoPriv.h"
 #include "include/private/SkNx.h"
+#include "include/private/SkTPin.h"
 #include "include/private/SkTemplates.h"
 #include "include/private/SkTo.h"
 #include "src/core/SkConvertPixels.h"
diff --git a/src/core/SkStream.cpp b/src/core/SkStream.cpp
index 6079c8e..ad16698 100644
--- a/src/core/SkStream.cpp
+++ b/src/core/SkStream.cpp
@@ -12,6 +12,7 @@
 #include "include/core/SkTypes.h"
 #include "include/private/SkFixed.h"
 #include "include/private/SkTFitsIn.h"
+#include "include/private/SkTPin.h"
 #include "include/private/SkTo.h"
 #include "src/core/SkOSFile.h"
 #include "src/core/SkSafeMath.h"
diff --git a/src/core/SkString.cpp b/src/core/SkString.cpp
index b8685e2..f334ea7 100644
--- a/src/core/SkString.cpp
+++ b/src/core/SkString.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "include/core/SkString.h"
+#include "include/private/SkTPin.h"
 #include "include/private/SkTo.h"
 #include "src/core/SkSafeMath.h"
 #include "src/core/SkUtils.h"
diff --git a/src/effects/SkEmbossMaskFilter.cpp b/src/effects/SkEmbossMaskFilter.cpp
index 2dcce2b..73210a3 100644
--- a/src/effects/SkEmbossMaskFilter.cpp
+++ b/src/effects/SkEmbossMaskFilter.cpp
@@ -8,6 +8,7 @@
 #include "include/core/SkColorPriv.h"
 #include "include/core/SkString.h"
 #include "include/effects/SkBlurMaskFilter.h"
+#include "include/private/SkTPin.h"
 #include "src/core/SkBlurMask.h"
 #include "src/core/SkReadBuffer.h"
 #include "src/core/SkWriteBuffer.h"
diff --git a/src/effects/SkHighContrastFilter.cpp b/src/effects/SkHighContrastFilter.cpp
index 349da52..30664d1 100644
--- a/src/effects/SkHighContrastFilter.cpp
+++ b/src/effects/SkHighContrastFilter.cpp
@@ -8,6 +8,7 @@
 #include "include/core/SkString.h"
 #include "include/effects/SkHighContrastFilter.h"
 #include "include/private/SkColorData.h"
+#include "include/private/SkTPin.h"
 #include "src/core/SkArenaAlloc.h"
 #include "src/core/SkColorFilterBase.h"
 #include "src/core/SkColorSpacePriv.h"
diff --git a/src/effects/SkTableMaskFilter.cpp b/src/effects/SkTableMaskFilter.cpp
index 118659b..7e87f1a 100644
--- a/src/effects/SkTableMaskFilter.cpp
+++ b/src/effects/SkTableMaskFilter.cpp
@@ -8,6 +8,7 @@
 #include "include/core/SkString.h"
 #include "include/effects/SkTableMaskFilter.h"
 #include "include/private/SkFixed.h"
+#include "include/private/SkTPin.h"
 #include "src/core/SkReadBuffer.h"
 #include "src/core/SkWriteBuffer.h"
 
diff --git a/src/effects/SkTrimPathEffect.cpp b/src/effects/SkTrimPathEffect.cpp
index bb7a99e..7c91491 100644
--- a/src/effects/SkTrimPathEffect.cpp
+++ b/src/effects/SkTrimPathEffect.cpp
@@ -7,6 +7,7 @@
 
 #include "include/core/SkPathMeasure.h"
 #include "include/effects/SkTrimPathEffect.h"
+#include "include/private/SkTPin.h"
 #include "src/core/SkReadBuffer.h"
 #include "src/core/SkWriteBuffer.h"
 #include "src/effects/SkTrimPE.h"
diff --git a/src/effects/imagefilters/SkAlphaThresholdFilter.cpp b/src/effects/imagefilters/SkAlphaThresholdFilter.cpp
index 20b6cbf..d0d3a9c 100644
--- a/src/effects/imagefilters/SkAlphaThresholdFilter.cpp
+++ b/src/effects/imagefilters/SkAlphaThresholdFilter.cpp
@@ -9,6 +9,7 @@
 
 #include "include/core/SkBitmap.h"
 #include "include/core/SkRegion.h"
+#include "include/private/SkTPin.h"
 #include "src/core/SkImageFilter_Base.h"
 #include "src/core/SkReadBuffer.h"
 #include "src/core/SkSpecialImage.h"
diff --git a/src/effects/imagefilters/SkBlurImageFilter.cpp b/src/effects/imagefilters/SkBlurImageFilter.cpp
index 38d7088..8d43066 100644
--- a/src/effects/imagefilters/SkBlurImageFilter.cpp
+++ b/src/effects/imagefilters/SkBlurImageFilter.cpp
@@ -14,6 +14,7 @@
 #include "include/private/SkColorData.h"
 #include "include/private/SkNx.h"
 #include "include/private/SkTFitsIn.h"
+#include "include/private/SkTPin.h"
 #include "src/core/SkArenaAlloc.h"
 #include "src/core/SkAutoPixmapStorage.h"
 #include "src/core/SkGpuBlurUtils.h"
diff --git a/src/effects/imagefilters/SkLightingImageFilter.cpp b/src/effects/imagefilters/SkLightingImageFilter.cpp
index 0374b4f..6413c4a 100644
--- a/src/effects/imagefilters/SkLightingImageFilter.cpp
+++ b/src/effects/imagefilters/SkLightingImageFilter.cpp
@@ -11,6 +11,7 @@
 #include "include/core/SkPoint3.h"
 #include "include/core/SkTypes.h"
 #include "include/private/SkColorData.h"
+#include "include/private/SkTPin.h"
 #include "src/core/SkImageFilter_Base.h"
 #include "src/core/SkReadBuffer.h"
 #include "src/core/SkSpecialImage.h"
diff --git a/src/effects/imagefilters/SkMagnifierImageFilter.cpp b/src/effects/imagefilters/SkMagnifierImageFilter.cpp
index 876ff56..be394d7 100644
--- a/src/effects/imagefilters/SkMagnifierImageFilter.cpp
+++ b/src/effects/imagefilters/SkMagnifierImageFilter.cpp
@@ -9,6 +9,7 @@
 
 #include "include/core/SkBitmap.h"
 #include "include/private/SkColorData.h"
+#include "include/private/SkTPin.h"
 #include "src/core/SkImageFilter_Base.h"
 #include "src/core/SkReadBuffer.h"
 #include "src/core/SkSpecialImage.h"
diff --git a/src/effects/imagefilters/SkMatrixConvolutionImageFilter.cpp b/src/effects/imagefilters/SkMatrixConvolutionImageFilter.cpp
index d2bbdc0..5e37e3c 100644
--- a/src/effects/imagefilters/SkMatrixConvolutionImageFilter.cpp
+++ b/src/effects/imagefilters/SkMatrixConvolutionImageFilter.cpp
@@ -12,6 +12,7 @@
 #include "include/core/SkTileMode.h"
 #include "include/core/SkUnPreMultiply.h"
 #include "include/private/SkColorData.h"
+#include "include/private/SkTPin.h"
 #include "src/core/SkImageFilter_Base.h"
 #include "src/core/SkReadBuffer.h"
 #include "src/core/SkSpecialImage.h"
diff --git a/src/gpu/GrDataUtils.cpp b/src/gpu/GrDataUtils.cpp
index cb91de2..9aebc93 100644
--- a/src/gpu/GrDataUtils.cpp
+++ b/src/gpu/GrDataUtils.cpp
@@ -7,6 +7,7 @@
 
 #include "src/gpu/GrDataUtils.h"
 
+#include "include/private/SkTPin.h"
 #include "include/third_party/skcms/skcms.h"
 #include "src/core/SkColorSpaceXformSteps.h"
 #include "src/core/SkCompressedDataUtils.h"
diff --git a/src/gpu/GrDistanceFieldGenFromVector.cpp b/src/gpu/GrDistanceFieldGenFromVector.cpp
index a677482..fc8b892 100644
--- a/src/gpu/GrDistanceFieldGenFromVector.cpp
+++ b/src/gpu/GrDistanceFieldGenFromVector.cpp
@@ -11,6 +11,7 @@
 #include "include/core/SkMatrix.h"
 #include "include/gpu/GrConfig.h"
 #include "include/pathops/SkPathOps.h"
+#include "include/private/SkTPin.h"
 #include "src/core/SkAutoMalloc.h"
 #include "src/core/SkGeometry.h"
 #include "src/core/SkPointPriv.h"
diff --git a/src/gpu/GrDrawOpAtlas.cpp b/src/gpu/GrDrawOpAtlas.cpp
index 615f7e3..c957151 100644
--- a/src/gpu/GrDrawOpAtlas.cpp
+++ b/src/gpu/GrDrawOpAtlas.cpp
@@ -9,6 +9,7 @@
 
 #include <memory>
 
+#include "include/private/SkTPin.h"
 #include "src/core/SkOpts.h"
 #include "src/gpu/GrBackendUtils.h"
 #include "src/gpu/GrOnFlushResourceProvider.h"
diff --git a/src/gpu/GrMemoryPool.cpp b/src/gpu/GrMemoryPool.cpp
index 2cdb6fa..d1d2c82 100644
--- a/src/gpu/GrMemoryPool.cpp
+++ b/src/gpu/GrMemoryPool.cpp
@@ -7,6 +7,7 @@
 
 #include "src/gpu/GrMemoryPool.h"
 
+#include "include/private/SkTPin.h"
 #include "src/gpu/ops/GrOp.h"
 
 #ifdef SK_DEBUG
diff --git a/src/gpu/SkGpuDevice_drawTexture.cpp b/src/gpu/SkGpuDevice_drawTexture.cpp
index 88221a7..c9c0dca 100644
--- a/src/gpu/SkGpuDevice_drawTexture.cpp
+++ b/src/gpu/SkGpuDevice_drawTexture.cpp
@@ -10,6 +10,7 @@
 #include "include/core/SkYUVAIndex.h"
 #include "include/gpu/GrDirectContext.h"
 #include "include/gpu/GrRecordingContext.h"
+#include "include/private/SkTPin.h"
 #include "src/core/SkDraw.h"
 #include "src/core/SkMaskFilterBase.h"
 #include "src/core/SkSpecialImage.h"
diff --git a/src/gpu/SkGr.cpp b/src/gpu/SkGr.cpp
index a9930bd..d08b4f0 100644
--- a/src/gpu/SkGr.cpp
+++ b/src/gpu/SkGr.cpp
@@ -16,6 +16,7 @@
 #include "include/gpu/GrTypes.h"
 #include "include/private/SkIDChangeListener.h"
 #include "include/private/SkImageInfoPriv.h"
+#include "include/private/SkTPin.h"
 #include "include/private/SkTemplates.h"
 #include "src/core/SkAutoMalloc.h"
 #include "src/core/SkBlendModePriv.h"
diff --git a/src/gpu/ccpr/GrCCAtlas.cpp b/src/gpu/ccpr/GrCCAtlas.cpp
index 8cf105e..8d3db10 100644
--- a/src/gpu/ccpr/GrCCAtlas.cpp
+++ b/src/gpu/ccpr/GrCCAtlas.cpp
@@ -7,6 +7,7 @@
 
 #include "src/gpu/ccpr/GrCCAtlas.h"
 
+#include "include/private/SkTPin.h"
 #include "src/core/SkIPoint16.h"
 #include "src/gpu/GrOnFlushResourceProvider.h"
 #include "src/gpu/ccpr/GrCCPathCache.h"
diff --git a/src/gpu/ccpr/GrOctoBounds.cpp b/src/gpu/ccpr/GrOctoBounds.cpp
index d3666af..cc6f97e 100644
--- a/src/gpu/ccpr/GrOctoBounds.cpp
+++ b/src/gpu/ccpr/GrOctoBounds.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 
+#include "include/private/SkTPin.h"
 #include "src/gpu/ccpr/GrOctoBounds.h"
 #include <algorithm>
 
diff --git a/src/gpu/ops/GrAAConvexTessellator.cpp b/src/gpu/ops/GrAAConvexTessellator.cpp
index bc5811e..09023eb 100644
--- a/src/gpu/ops/GrAAConvexTessellator.cpp
+++ b/src/gpu/ops/GrAAConvexTessellator.cpp
@@ -9,6 +9,7 @@
 #include "include/core/SkPath.h"
 #include "include/core/SkPoint.h"
 #include "include/core/SkString.h"
+#include "include/private/SkTPin.h"
 #include "src/gpu/geometry/GrPathUtils.h"
 #include "src/gpu/ops/GrAAConvexTessellator.h"
 
diff --git a/src/pathops/SkPathOpsCubic.cpp b/src/pathops/SkPathOpsCubic.cpp
index 1617520..ff08506 100644
--- a/src/pathops/SkPathOpsCubic.cpp
+++ b/src/pathops/SkPathOpsCubic.cpp
@@ -4,6 +4,7 @@
  * Use of this source code is governed by a BSD-style license that can be
  * found in the LICENSE file.
  */
+#include "include/private/SkTPin.h"
 #include "src/core/SkGeometry.h"
 #include "src/core/SkTSort.h"
 #include "src/pathops/SkLineParameters.h"
diff --git a/src/pdf/SkPDFShader.cpp b/src/pdf/SkPDFShader.cpp
index a3137ea..0e20b62 100644
--- a/src/pdf/SkPDFShader.cpp
+++ b/src/pdf/SkPDFShader.cpp
@@ -13,6 +13,7 @@
 #include "include/core/SkStream.h"
 #include "include/core/SkSurface.h"
 #include "include/docs/SkPDFDocument.h"
+#include "include/private/SkTPin.h"
 #include "include/private/SkTemplates.h"
 #include "src/pdf/SkPDFDevice.h"
 #include "src/pdf/SkPDFDocumentPriv.h"
diff --git a/src/ports/SkFontHost_FreeType.cpp b/src/ports/SkFontHost_FreeType.cpp
index f73b5fe..990eff4 100644
--- a/src/ports/SkFontHost_FreeType.cpp
+++ b/src/ports/SkFontHost_FreeType.cpp
@@ -15,6 +15,7 @@
 #include "include/private/SkColorData.h"
 #include "include/private/SkMalloc.h"
 #include "include/private/SkMutex.h"
+#include "include/private/SkTPin.h"
 #include "include/private/SkTemplates.h"
 #include "include/private/SkTo.h"
 #include "src/core/SkAdvancedTypefaceMetrics.h"
diff --git a/src/ports/SkFontMgr_mac_ct.cpp b/src/ports/SkFontMgr_mac_ct.cpp
index c362b16..9d88d2a 100644
--- a/src/ports/SkFontMgr_mac_ct.cpp
+++ b/src/ports/SkFontMgr_mac_ct.cpp
@@ -29,6 +29,7 @@
 #include "include/ports/SkFontMgr_mac_ct.h"
 #include "include/private/SkFixed.h"
 #include "include/private/SkOnce.h"
+#include "include/private/SkTPin.h"
 #include "include/private/SkTemplates.h"
 #include "include/private/SkTo.h"
 #include "src/core/SkFontDescriptor.h"
diff --git a/src/ports/SkFontMgr_win_dw.cpp b/src/ports/SkFontMgr_win_dw.cpp
index 1f73a0c..b56018f 100644
--- a/src/ports/SkFontMgr_win_dw.cpp
+++ b/src/ports/SkFontMgr_win_dw.cpp
@@ -14,6 +14,7 @@
 #include "include/core/SkTypeface.h"
 #include "include/core/SkTypes.h"
 #include "include/private/SkMutex.h"
+#include "include/private/SkTPin.h"
 #include "src/core/SkEndian.h"
 #include "src/core/SkFontDescriptor.h"
 #include "src/core/SkTypefaceCache.h"
diff --git a/src/ports/SkTypeface_mac_ct.cpp b/src/ports/SkTypeface_mac_ct.cpp
index 3b70f36..a69069d 100644
--- a/src/ports/SkTypeface_mac_ct.cpp
+++ b/src/ports/SkTypeface_mac_ct.cpp
@@ -37,6 +37,7 @@
 #include "include/private/SkMutex.h"
 #include "include/private/SkOnce.h"
 #include "include/private/SkTDArray.h"
+#include "include/private/SkTPin.h"
 #include "include/private/SkTemplates.h"
 #include "include/private/SkTo.h"
 #include "src/core/SkAdvancedTypefaceMetrics.h"
diff --git a/src/shaders/SkPerlinNoiseShader.cpp b/src/shaders/SkPerlinNoiseShader.cpp
index fb3dda0..081abc2 100644
--- a/src/shaders/SkPerlinNoiseShader.cpp
+++ b/src/shaders/SkPerlinNoiseShader.cpp
@@ -11,6 +11,7 @@
 #include "include/core/SkShader.h"
 #include "include/core/SkString.h"
 #include "include/core/SkUnPreMultiply.h"
+#include "include/private/SkTPin.h"
 #include "src/core/SkArenaAlloc.h"
 #include "src/core/SkMatrixProvider.h"
 #include "src/core/SkReadBuffer.h"
diff --git a/src/shaders/gradients/Sk4fLinearGradient.cpp b/src/shaders/gradients/Sk4fLinearGradient.cpp
index 944ac9f..d381d35 100644
--- a/src/shaders/gradients/Sk4fLinearGradient.cpp
+++ b/src/shaders/gradients/Sk4fLinearGradient.cpp
@@ -6,6 +6,7 @@
  */
 
 #include "include/core/SkPaint.h"
+#include "include/private/SkTPin.h"
 #include "src/shaders/gradients/Sk4fLinearGradient.h"
 
 #include <cmath>
diff --git a/src/shaders/gradients/SkGradientShader.cpp b/src/shaders/gradients/SkGradientShader.cpp
index 6b4c53e..75690ee 100644
--- a/src/shaders/gradients/SkGradientShader.cpp
+++ b/src/shaders/gradients/SkGradientShader.cpp
@@ -9,6 +9,7 @@
 #include "include/core/SkMallocPixelRef.h"
 #include "include/private/SkFloatBits.h"
 #include "include/private/SkHalf.h"
+#include "include/private/SkTPin.h"
 #include "include/private/SkVx.h"
 #include "src/core/SkColorSpacePriv.h"
 #include "src/core/SkConvertPixels.h"
diff --git a/src/svg/SkSVGDevice.cpp b/src/svg/SkSVGDevice.cpp
index f932cb1..bb006fa 100644
--- a/src/svg/SkSVGDevice.cpp
+++ b/src/svg/SkSVGDevice.cpp
@@ -22,6 +22,7 @@
 #include "include/core/SkTypeface.h"
 #include "include/private/SkChecksum.h"
 #include "include/private/SkTHash.h"
+#include "include/private/SkTPin.h"
 #include "include/private/SkTo.h"
 #include "include/svg/SkSVGCanvas.h"
 #include "include/utils/SkBase64.h"
diff --git a/src/utils/SkPatchUtils.cpp b/src/utils/SkPatchUtils.cpp
index b645d41..9ca2633 100644
--- a/src/utils/SkPatchUtils.cpp
+++ b/src/utils/SkPatchUtils.cpp
@@ -9,6 +9,7 @@
 
 #include "include/core/SkVertices.h"
 #include "include/private/SkColorData.h"
+#include "include/private/SkTPin.h"
 #include "include/private/SkTo.h"
 #include "src/core/SkArenaAlloc.h"
 #include "src/core/SkColorSpacePriv.h"
diff --git a/src/utils/SkShadowTessellator.cpp b/src/utils/SkShadowTessellator.cpp
index 8c3f5ce..450b4ff 100644
--- a/src/utils/SkShadowTessellator.cpp
+++ b/src/utils/SkShadowTessellator.cpp
@@ -9,6 +9,7 @@
 #include "include/core/SkPoint3.h"
 #include "include/core/SkVertices.h"
 #include "include/private/SkColorData.h"
+#include "include/private/SkTPin.h"
 #include "src/core/SkDrawShadowInfo.h"
 #include "src/core/SkGeometry.h"
 #include "src/core/SkPointPriv.h"
diff --git a/src/utils/SkShadowUtils.cpp b/src/utils/SkShadowUtils.cpp
index 10e1319..615b5d7 100644
--- a/src/utils/SkShadowUtils.cpp
+++ b/src/utils/SkShadowUtils.cpp
@@ -15,6 +15,7 @@
 #include "include/core/SkVertices.h"
 #include "include/private/SkColorData.h"
 #include "include/private/SkIDChangeListener.h"
+#include "include/private/SkTPin.h"
 #include "include/utils/SkRandom.h"
 #include "src/core/SkBlurMask.h"
 #include "src/core/SkColorFilterBase.h"
diff --git a/tests/BlurTest.cpp b/tests/BlurTest.cpp
index 3c0871d..a69a43b 100644
--- a/tests/BlurTest.cpp
+++ b/tests/BlurTest.cpp
@@ -32,6 +32,7 @@
 #include "include/effects/SkPerlinNoiseShader.h"
 #include "include/gpu/GrDirectContext.h"
 #include "include/private/SkFloatBits.h"
+#include "include/private/SkTPin.h"
 #include "src/core/SkBlurMask.h"
 #include "src/core/SkBlurPriv.h"
 #include "src/core/SkMask.h"
diff --git a/tests/InterpolatorTest.cpp b/tests/InterpolatorTest.cpp
index b56a05b..2bb5180 100644
--- a/tests/InterpolatorTest.cpp
+++ b/tests/InterpolatorTest.cpp
@@ -5,6 +5,7 @@
  * found in the LICENSE file.
  */
 
+#include "include/private/SkTPin.h"
 #include "include/utils/SkInterpolator.h"
 
 #include "tests/Test.h"
diff --git a/tests/MathTest.cpp b/tests/MathTest.cpp
index 64aff81..7fb1bc2 100644
--- a/tests/MathTest.cpp
+++ b/tests/MathTest.cpp
@@ -9,6 +9,7 @@
 #include "include/private/SkColorData.h"
 #include "include/private/SkFixed.h"
 #include "include/private/SkHalf.h"
+#include "include/private/SkTPin.h"
 #include "include/private/SkTo.h"
 #include "include/utils/SkRandom.h"
 #include "src/core/SkEndian.h"
diff --git a/tools/skottie2movie.cpp b/tools/skottie2movie.cpp
index f43c4e0..b47425a 100644
--- a/tools/skottie2movie.cpp
+++ b/tools/skottie2movie.cpp
@@ -11,6 +11,7 @@
 #include "include/core/SkStream.h"
 #include "include/core/SkSurface.h"
 #include "include/core/SkTime.h"
+#include "include/private/SkTPin.h"
 #include "modules/skottie/include/Skottie.h"
 #include "modules/skresources/include/SkResources.h"
 #include "src/utils/SkOSPath.h"
diff --git a/tools/viewer/ImGuiLayer.h b/tools/viewer/ImGuiLayer.h
index ced79d2..51426a2 100644
--- a/tools/viewer/ImGuiLayer.h
+++ b/tools/viewer/ImGuiLayer.h
@@ -10,6 +10,7 @@
 
 #include "include/core/SkPaint.h"
 #include "include/private/SkTArray.h"
+#include "include/private/SkTPin.h"
 #include "tools/sk_app/Window.h"
 
 #include "imgui.h"
diff --git a/tools/viewer/SkottieSlide.cpp b/tools/viewer/SkottieSlide.cpp
index 8b29936..d19bbd2 100644
--- a/tools/viewer/SkottieSlide.cpp
+++ b/tools/viewer/SkottieSlide.cpp
@@ -12,6 +12,7 @@
 #include "include/core/SkCanvas.h"
 #include "include/core/SkFont.h"
 #include "include/core/SkTime.h"
+#include "include/private/SkTPin.h"
 #include "modules/audioplayer/SkAudioPlayer.h"
 #include "modules/skottie/include/Skottie.h"
 #include "modules/skottie/utils/SkottieUtils.h"
diff --git a/tools/viewer/SlideDir.cpp b/tools/viewer/SlideDir.cpp
index 5cce6b1..094e43c 100644
--- a/tools/viewer/SlideDir.cpp
+++ b/tools/viewer/SlideDir.cpp
@@ -10,6 +10,7 @@
 #include "include/core/SkCanvas.h"
 #include "include/core/SkCubicMap.h"
 #include "include/core/SkTypeface.h"
+#include "include/private/SkTPin.h"
 #include "modules/sksg/include/SkSGDraw.h"
 #include "modules/sksg/include/SkSGGroup.h"
 #include "modules/sksg/include/SkSGPaint.h"
diff --git a/tools/viewer/Viewer.cpp b/tools/viewer/Viewer.cpp
index 67c0dd3..d5ab9af 100644
--- a/tools/viewer/Viewer.cpp
+++ b/tools/viewer/Viewer.cpp
@@ -12,6 +12,7 @@
 #include "include/core/SkStream.h"
 #include "include/core/SkSurface.h"
 #include "include/gpu/GrDirectContext.h"
+#include "include/private/SkTPin.h"
 #include "include/private/SkTo.h"
 #include "include/utils/SkPaintFilterCanvas.h"
 #include "src/core/SkColorSpacePriv.h"