29
29
#include " swift/Frontend/FrontendOptions.h"
30
30
#include " swift/Frontend/ModuleInterfaceLoader.h"
31
31
#include " swift/Strings.h"
32
- #include " clang-c/CXString.h"
33
32
#include " clang/Basic/Module.h"
34
33
#include " llvm/ADT/SetVector.h"
35
34
#include " llvm/ADT/StringMap.h"
@@ -823,11 +822,15 @@ generateFullDependencyGraph(CompilerInstance &instance,
823
822
return details;
824
823
};
825
824
826
- auto &moduleInfo = *dependencySet->modules [i];
827
- moduleInfo.module_name =
828
- create_dup (createEncodedModuleKindAndName (module ).c_str ());
829
- moduleInfo.module_path = create_dup (modulePath.c_str ());
830
- moduleInfo.source_files = create_set (sourceFiles);
825
+ swiftscan_dependency_info_s *moduleInfo = new swiftscan_dependency_info_s;
826
+ dependencySet->modules [i] = moduleInfo;
827
+
828
+ std::string encodedModuleName = createEncodedModuleKindAndName (module );
829
+ auto ttt = create_dup (encodedModuleName.c_str ());
830
+ moduleInfo->module_name = ttt;
831
+ moduleInfo->module_path = create_dup (modulePath.c_str ());
832
+ moduleInfo->source_files = create_set (sourceFiles);
833
+
831
834
// Create a direct dependencies set according to the output format
832
835
std::vector<std::string> bridgedDependencyNames;
833
836
for (const auto &dep : directDependencies) {
@@ -850,8 +853,9 @@ generateFullDependencyGraph(CompilerInstance &instance,
850
853
dependencyKindAndName += dep.first ;
851
854
bridgedDependencyNames.push_back (dependencyKindAndName);
852
855
}
853
- moduleInfo.direct_dependencies = create_set (bridgedDependencyNames);
854
- moduleInfo.details = getModuleDetails ();
856
+
857
+ moduleInfo->direct_dependencies = create_set (bridgedDependencyNames);
858
+ moduleInfo->details = getModuleDetails ();
855
859
}
856
860
857
861
swiftscan_dependency_result_s *result = new swiftscan_dependency_result_s;
@@ -1196,7 +1200,6 @@ swift::dependencies::performModuleScan(CompilerInstance &instance,
1196
1200
allModules.insert ({mainModuleName.str (), mainDependencies.getKind ()});
1197
1201
1198
1202
cache.recordDependencies (mainModuleName, std::move (mainDependencies));
1199
-
1200
1203
auto &ctx = instance.getASTContext ();
1201
1204
auto ModuleCachePath = getModuleCachePathFromClang (
1202
1205
ctx.getClangModuleLoader ()->getClangInstance ());
@@ -1229,10 +1232,8 @@ swift::dependencies::performModuleScan(CompilerInstance &instance,
1229
1232
if (diagnoseCycle (instance, cache, /* MainModule*/ allModules.front (),
1230
1233
ASTDelegate))
1231
1234
return std::make_error_code (std::errc::not_supported);
1232
-
1233
1235
auto dependencyGraph = generateFullDependencyGraph (
1234
1236
instance, cache, ASTDelegate, allModules.getArrayRef ());
1235
-
1236
1237
// Update the dependency tracker.
1237
1238
if (auto depTracker = instance.getDependencyTracker ()) {
1238
1239
for (auto module : allModules) {
0 commit comments