diff --git a/frameworks/bridge/common/utils/source_map.cpp b/frameworks/bridge/common/utils/source_map.cpp index 13d3c769a021215b1367faf40c8d07ffce7dfb01..4ff44faeb25b02fec8263555ca209223778cc9b6 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);