From e7990bda0a7440de0b647d8b3c2b4286239f4023 Mon Sep 17 00:00:00 2001 From: ALEXks Date: Wed, 30 Apr 2025 09:14:22 +0300 Subject: [PATCH] fixed SPF_InsertIncludesPass unpacking --- src/Utils/version.h | 2 +- src/VisualizerCalls/get_information.cpp | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/Utils/version.h b/src/Utils/version.h index 79a15fd..fd53754 100644 --- a/src/Utils/version.h +++ b/src/Utils/version.h @@ -1,3 +1,3 @@ #pragma once -#define VERSION_SPF "2412" +#define VERSION_SPF "2413" diff --git a/src/VisualizerCalls/get_information.cpp b/src/VisualizerCalls/get_information.cpp index 1908ec3..40ef3de 100644 --- a/src/VisualizerCalls/get_information.cpp +++ b/src/VisualizerCalls/get_information.cpp @@ -2207,15 +2207,16 @@ int SPF_InsertIncludesPass(void*& context, int winHandler, short *options, short return -3; filesToInclude.clear(); - for (int i = 0; i < splited.size(); ++i) + unsigned i = 0; + while (i < splited.size()) { - string file = splited[i]; + string file = splited[i++]; int num = 0; - if (sscanf(splited[i + 1].c_str(), "%d", &num) == -1) + if (sscanf(splited[i++].c_str(), "%d", &num) == -1) return -4; __spf_print(1, "file = %s:\n", file.c_str()); - for (int k = i + 2; k < i + 2 + 2 * num; k += 2) + for (int k = i; k < i + 2 * num; k += 2) { int line = 0; if (sscanf(splited[k].c_str(), "%d", &line) == -1) @@ -2225,7 +2226,7 @@ int SPF_InsertIncludesPass(void*& context, int winHandler, short *options, short filesToInclude[file].push_back(pair); __spf_print(1, " include = [%d %s]\n", pair.first, pair.second.c_str()); } - i += 1 + num; + i += 2 * num; } return simpleTransformPass(INSERT_INCLUDES, options, projName, folderName, output, outputSize, outputMessage, outputMessageSize); }