From 43ce1e0ce1686ef9ee07700aa325f1440df08883 Mon Sep 17 00:00:00 2001 From: ZhangYu Date: Tue, 14 May 2024 07:49:40 +0000 Subject: [PATCH] Fix the source map of stage-model project on the previewer. Signed-off-by: ZhangYu Change-Id: I2011d63f71b8405c4e3c457be0d8d7a16c040b07 --- frameworks/bridge/common/utils/source_map.cpp | 28 ++++++------------- 1 file changed, 9 insertions(+), 19 deletions(-) diff --git a/frameworks/bridge/common/utils/source_map.cpp b/frameworks/bridge/common/utils/source_map.cpp index 13d3c769a02..4ff44faeb25 100644 --- a/frameworks/bridge/common/utils/source_map.cpp +++ b/frameworks/bridge/common/utils/source_map.cpp @@ -39,8 +39,6 @@ constexpr int32_t SOURCES_VAL = 1; constexpr int32_t BEFORE_ROW = 2; constexpr int32_t BEFORE_COLUMN = 3; constexpr int32_t NAMES_VAL = 4; -constexpr int32_t P0S_SPACE_LENGTH = 20; -constexpr int32_t SPACE_LEN = 26; MappingInfo RevSourceMap::Find(int32_t row, int32_t col, bool isColPrecise) { @@ -412,29 +410,21 @@ bool RevSourceMap::VlqRevCode(const std::string& vStr, std::vector& ans return true; }; +// The function is used to prase the sourcemap of stage-model project on the previewer and will be abandoned later. void RevSourceMap::StageModeSourceMapSplit(const std::string& sourceMap, std::unordered_map>& sourceMaps) { - std::size_t leftBracket = 0; - std::size_t rightBracket = 0; - std::string value; - std::string key; + size_t leftBracket = 0; + size_t rightBracket = 0; while ((leftBracket = sourceMap.find(": {", rightBracket)) != std::string::npos) { - rightBracket = sourceMap.find("}", leftBracket); - if (rightBracket == std::string::npos) { - return; - } - value = sourceMap.substr(leftBracket, rightBracket); - std::size_t sources = value.find("\"sources\": ["); - if (sources == std::string::npos) { - continue; - } - std::size_t names = value.find("],"); - if (names == std::string::npos) { + size_t urlLeft = leftBracket; + size_t urlRight = sourceMap.find(" \"", rightBracket) + 3; + if (urlRight == std::string::npos) { continue; } - // Intercept the sourcemap file path as the key - key = value.substr(sources + P0S_SPACE_LENGTH, names - sources - SPACE_LEN); + std::string key = sourceMap.substr(urlRight, urlLeft - urlRight - 1); + rightBracket = sourceMap.find("},", leftBracket); + std::string value = sourceMap.substr(leftBracket, rightBracket); RefPtr curMapData = MakeRefPtr(); MergeInit(value, curMapData); sourceMaps.emplace(key, curMapData); -- Gitee