Temporarily revert runtime decoder registration.

Some builds in Google3 can't find SkSharedMutex at link time.

This reverts commit ff7006ff8082a6f4298cc9f32acc726535d93711.
This reverts commit 05f45b21b72fdf738986ea428346f2fbec8444d8.

Change-Id: I889e9a3169cf017b8d5daacf75099663fc996d73
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/210785
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Mike Klein <mtklein@google.com>
diff --git a/src/codec/SkCodec.cpp b/src/codec/SkCodec.cpp
index 49ec864..a09af36 100644
--- a/src/codec/SkCodec.cpp
+++ b/src/codec/SkCodec.cpp
@@ -9,8 +9,6 @@
 #include "include/core/SkColorSpace.h"
 #include "include/core/SkData.h"
 #include "include/private/SkHalf.h"
-#include "include/private/SkMutex.h"
-#include "src/core/SkSharedMutex.h"
 #include "src/codec/SkBmpCodec.h"
 #include "src/codec/SkCodecPriv.h"
 #include "src/codec/SkFrameHolder.h"
@@ -37,44 +35,27 @@
     std::unique_ptr<SkCodec> (*MakeFromStream)(std::unique_ptr<SkStream>, SkCodec::Result*);
 };
 
-// Wish we had SK_DECLARE_STATIC_SHARED_MUTEX.
-static SkSharedMutex* decoders_mutex() {
-    static SkSharedMutex* mutex = new SkSharedMutex;
-    return mutex;
-}
-
-static std::vector<DecoderProc>* decoders() {
-    static auto* decoders = new std::vector<DecoderProc> {
-    #ifdef SK_HAS_JPEG_LIBRARY
-        { SkJpegCodec::IsJpeg, SkJpegCodec::MakeFromStream },
-    #endif
-    #ifdef SK_HAS_WEBP_LIBRARY
-        { SkWebpCodec::IsWebp, SkWebpCodec::MakeFromStream },
-    #endif
-    #ifdef SK_HAS_WUFFS_LIBRARY
-        { SkWuffsCodec_IsFormat, SkWuffsCodec_MakeFromStream },
-    #else
-        { SkGifCodec::IsGif, SkGifCodec::MakeFromStream },
-    #endif
-    #ifdef SK_HAS_PNG_LIBRARY
-        { SkIcoCodec::IsIco, SkIcoCodec::MakeFromStream },
-    #endif
-        { SkBmpCodec::IsBmp, SkBmpCodec::MakeFromStream },
-        { SkWbmpCodec::IsWbmp, SkWbmpCodec::MakeFromStream },
-    #ifdef SK_HAS_HEIF_LIBRARY
-        { SkHeifCodec::IsHeif, SkHeifCodec::MakeFromStream },
-    #endif
-    };
-    return decoders;
-}
-
-void SkCodec::Register(
-            bool                     (*peek)(const void*, size_t),
-            std::unique_ptr<SkCodec> (*make)(std::unique_ptr<SkStream>, SkCodec::Result*)) {
-    SkAutoExclusive lock{*decoders_mutex()};
-    decoders()->push_back(DecoderProc{peek, make});
-}
-
+static constexpr DecoderProc gDecoderProcs[] = {
+#ifdef SK_HAS_JPEG_LIBRARY
+    { SkJpegCodec::IsJpeg, SkJpegCodec::MakeFromStream },
+#endif
+#ifdef SK_HAS_WEBP_LIBRARY
+    { SkWebpCodec::IsWebp, SkWebpCodec::MakeFromStream },
+#endif
+#ifdef SK_HAS_WUFFS_LIBRARY
+    { SkWuffsCodec_IsFormat, SkWuffsCodec_MakeFromStream },
+#else
+    { SkGifCodec::IsGif, SkGifCodec::MakeFromStream },
+#endif
+#ifdef SK_HAS_PNG_LIBRARY
+    { SkIcoCodec::IsIco, SkIcoCodec::MakeFromStream },
+#endif
+    { SkBmpCodec::IsBmp, SkBmpCodec::MakeFromStream },
+    { SkWbmpCodec::IsWbmp, SkWbmpCodec::MakeFromStream },
+#ifdef SK_HAS_HEIF_LIBRARY
+    { SkHeifCodec::IsHeif, SkHeifCodec::MakeFromStream },
+#endif
+};
 
 std::unique_ptr<SkCodec> SkCodec::MakeFromStream(std::unique_ptr<SkStream> stream,
                                                  Result* outResult, SkPngChunkReader* chunkReader) {
@@ -124,8 +105,7 @@
     } else
 #endif
     {
-        SkAutoSharedMutexShared lock{*decoders_mutex()};
-        for (DecoderProc proc : *decoders()) {
+        for (DecoderProc proc : gDecoderProcs) {
             if (proc.IsFormat(buffer, bytesRead)) {
                 return proc.MakeFromStream(std::move(stream), outResult);
             }