From 24d8e5ad5b33a62b7f512373eb698bcabaae4e1b Mon Sep 17 00:00:00 2001 From: Tooru Fujisawa <arai_a@mac.com> Date: Tue, 21 Sep 2021 18:45:20 +0000 Subject: [PATCH] Bug 1688791 - Part 9: Remove stencil/script char from GetScriptTranscodingBuildId. r=tcampbell Differential Revision: https://phabricator.services.mozilla.com/D121275 --- js/src/vm/Xdr.cpp | 39 +++++---------------------------------- 1 file changed, 5 insertions(+), 34 deletions(-) diff --git a/js/src/vm/Xdr.cpp b/js/src/vm/Xdr.cpp index 5ead18940228d..6a1a33df4371e 100644 --- a/js/src/vm/Xdr.cpp +++ b/js/src/vm/Xdr.cpp @@ -176,14 +176,8 @@ XDRResult XDRState<mode>::codeCharsZ(XDRTranscodeString<char16_t>& buffer) { return XDRCodeCharsZ(this, buffer); } -enum class XDRFormatType : uint8_t { - UseOption, - JSScript, - Stencil, -}; - -static bool GetScriptTranscodingBuildId(XDRFormatType formatType, - JS::BuildIdCharVector* buildId) { +JS_PUBLIC_API bool JS::GetScriptTranscodingBuildId( + JS::BuildIdCharVector* buildId) { MOZ_ASSERT(buildId->empty()); MOZ_ASSERT(GetBuildId); @@ -205,36 +199,13 @@ static bool GetScriptTranscodingBuildId(XDRFormatType formatType, buildId->infallibleAppend(sizeof(uintptr_t) == 4 ? '4' : '8'); buildId->infallibleAppend(MOZ_LITTLE_ENDIAN() ? 'l' : 'b'); - // '0': Stencil - // '1': JSScript. - char formatChar = '0'; - switch (formatType) { - case XDRFormatType::UseOption: - // If off-thread parse global isn't used for single script decoding, - // we use stencil XDR instead of JSScript XDR. - formatChar = js::UseOffThreadParseGlobal() ? '1' : '0'; - break; - case XDRFormatType::JSScript: - formatChar = '1'; - break; - case XDRFormatType::Stencil: - formatChar = '0'; - break; - } - buildId->infallibleAppend(formatChar); - return true; } -JS_PUBLIC_API bool JS::GetScriptTranscodingBuildId( - JS::BuildIdCharVector* buildId) { - return GetScriptTranscodingBuildId(XDRFormatType::UseOption, buildId); -} - template <XDRMode mode> -static XDRResult VersionCheck(XDRState<mode>* xdr, XDRFormatType formatType) { +static XDRResult VersionCheck(XDRState<mode>* xdr) { JS::BuildIdCharVector buildId; - if (!GetScriptTranscodingBuildId(formatType, &buildId)) { + if (!JS::GetScriptTranscodingBuildId(&buildId)) { ReportOutOfMemory(xdr->cx()); return xdr->fail(JS::TranscodeResult::Throw); } @@ -281,7 +252,7 @@ static XDRResult XDRStencilHeader( // The XDR-Stencil header is inserted at beginning of buffer, but it is // computed at the end the incremental-encoding process. - MOZ_TRY(VersionCheck(xdr, XDRFormatType::Stencil)); + MOZ_TRY(VersionCheck(xdr)); MOZ_TRY(ScriptSource::XDR(xdr, maybeOptions, source)); return Ok(); -- GitLab