MCPcopy Create free account
hub / github.com/GDRETools/gdsdecomp / _load

Method _load

utility/godot_mono_decomp_wrapper.cpp:21–66  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

19}
20
21Error GodotMonoDecompWrapper::_load(const String &p_assembly_path, const Vector<String> &p_original_project_files, const Vector<String> &p_assembly_reference_dirs, const GodotMonoDecompSettings &p_settings) {
22 CharString assembly_path_chrstr = p_assembly_path.utf8();
23 const char *assembly_path_c = assembly_path_chrstr.get_data();
24 String ref_path = p_assembly_path.get_base_dir();
25 CharString ref_path_chrstr = ref_path.utf8();
26 const char *ref_path_c = ref_path_chrstr.get_data();
27 const char *ref_path_c_array[] = { ref_path_c };
28
29 CharString godotVersionOverride_chrstr = p_settings.GodotVersionOverride.is_empty() ? "" : p_settings.GodotVersionOverride.utf8();
30 const char *godotVersionOverride_c = p_settings.GodotVersionOverride.is_empty() ? nullptr : godotVersionOverride_chrstr.get_data();
31
32 const char **originalProjectFiles_c_array = new const char *[p_original_project_files.size()];
33 Vector<CharString> originalProjectFiles_chrstrs;
34 originalProjectFiles_chrstrs.resize(p_original_project_files.size());
35 for (int i = 0; i < p_original_project_files.size(); i++) {
36 // to keep them from being freed
37 originalProjectFiles_chrstrs.write[i] = p_original_project_files[i].utf8();
38 originalProjectFiles_c_array[i] = originalProjectFiles_chrstrs[i].get_data();
39 }
40
41 auto new_decompiler_handle = GodotMonoDecomp_CreateGodotModuleDecompiler(
42 assembly_path_c,
43 originalProjectFiles_c_array,
44 p_original_project_files.size(),
45 ref_path_c_array,
46 1,
47 godotVersionOverride_c,
48 p_settings.WriteNuGetPackageReferences,
49 p_settings.VerifyNuGetPackageIsFromNugetOrg,
50 p_settings.CopyOutOfTreeReferences,
51 p_settings.CreateAdditionalProjectsForProjectReferences,
52 p_settings.RemoveGeneratedJsonContextBody,
53 p_settings.EnableCollectionInitializerLifting,
54 p_settings.EmitILAnnotationComments,
55 (LanguageVersion)p_settings.OverrideLanguageVersion);
56 delete[] originalProjectFiles_c_array;
57 if (new_decompiler_handle == nullptr) {
58 return ERR_CANT_CREATE;
59 }
60 this->decompilerHandle = new_decompiler_handle;
61 this->assembly_path = p_assembly_path;
62 this->originalProjectFiles = p_original_project_files;
63 this->assemblyReferenceDirs = p_assembly_reference_dirs;
64 this->settings = p_settings;
65 return OK;
66}
67
68struct DecompileModuleTaskData : public TaskRunnerStruct {
69 String outputCSProjectPath;

Callers 1

createMethod · 0.45

Calls 3

get_dataMethod · 0.45
sizeMethod · 0.45
resizeMethod · 0.45

Tested by

no test coverage detected