Skip to content

Commit fd9b3d1

Browse files
authored
Remove members on arguments_t that are not related to the app itself (#78745)
1 parent fcff857 commit fd9b3d1

File tree

11 files changed

+154
-177
lines changed

11 files changed

+154
-177
lines changed

src/native/corehost/hostmisc/utils.cpp

Lines changed: 0 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -267,46 +267,6 @@ pal::string_t get_current_runtime_id(bool use_fallback)
267267
return rid;
268268
}
269269

270-
bool get_env_shared_store_dirs(std::vector<pal::string_t>* dirs, const pal::string_t& arch, const pal::string_t& tfm)
271-
{
272-
pal::string_t path;
273-
if (!pal::getenv(_X("DOTNET_SHARED_STORE"), &path))
274-
{
275-
return false;
276-
}
277-
278-
pal::string_t tok;
279-
pal::stringstream_t ss(path);
280-
while (std::getline(ss, tok, PATH_SEPARATOR))
281-
{
282-
if (pal::realpath(&tok))
283-
{
284-
append_path(&tok, arch.c_str());
285-
append_path(&tok, tfm.c_str());
286-
dirs->push_back(tok);
287-
}
288-
}
289-
return true;
290-
}
291-
292-
bool get_global_shared_store_dirs(std::vector<pal::string_t>* dirs, const pal::string_t& arch, const pal::string_t& tfm)
293-
{
294-
std::vector<pal::string_t> global_dirs;
295-
if (!pal::get_global_dotnet_dirs(&global_dirs))
296-
{
297-
return false;
298-
}
299-
300-
for (pal::string_t dir : global_dirs)
301-
{
302-
append_path(&dir, RUNTIME_STORE_DIRECTORY_NAME);
303-
append_path(&dir, arch.c_str());
304-
append_path(&dir, tfm.c_str());
305-
dirs->push_back(dir);
306-
}
307-
return true;
308-
}
309-
310270
/**
311271
* Multilevel Lookup is enabled by default
312272
* It can be disabled by setting DOTNET_MULTILEVEL_LOOKUP env var to a value that is not 1

src/native/corehost/hostmisc/utils.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@
2828
#define INSTALL_NET_ERROR_MESSAGE _X("You must install .NET to run this application.")
2929
#define INSTALL_NET_DESKTOP_ERROR_MESSAGE _X("You must install .NET Desktop Runtime to run this application.")
3030

31-
#define RUNTIME_STORE_DIRECTORY_NAME _X("store")
32-
3331
#define DOTNET_ROOT_ENV_VAR _X("DOTNET_ROOT")
3432

3533
bool ends_with(const pal::string_t& value, const pal::string_t& suffix, bool match_case);
@@ -76,8 +74,6 @@ const pal::char_t* get_arch_name(pal::architecture arch);
7674
const pal::char_t* get_current_arch_name();
7775

7876
pal::string_t get_current_runtime_id(bool use_fallback);
79-
bool get_env_shared_store_dirs(std::vector<pal::string_t>* dirs, const pal::string_t& arch, const pal::string_t& tfm);
80-
bool get_global_shared_store_dirs(std::vector<pal::string_t>* dirs, const pal::string_t& arch, const pal::string_t& tfm);
8177
bool multilevel_lookup_enabled();
8278
void get_framework_and_sdk_locations(const pal::string_t& dotnet_dir, const bool disable_multilevel_lookup, std::vector<pal::string_t>* locations);
8379
bool get_file_path_from_env(const pal::char_t* env_key, pal::string_t* recv);

src/native/corehost/hostpolicy/args.cpp

Lines changed: 0 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -7,54 +7,14 @@
77

88
arguments_t::arguments_t()
99
: host_mode(host_mode_t::invalid)
10-
, host_path(_X(""))
1110
, app_root(_X(""))
1211
, deps_path(_X(""))
13-
, core_servicing(_X(""))
1412
, managed_application(_X(""))
1513
, app_argc(0)
1614
, app_argv(nullptr)
1715
{
1816
}
1917

20-
/**
21-
*
22-
* Setup the shared store directories.
23-
*
24-
* o %DOTNET_SHARED_STORE% -- multiple delimited paths
25-
* o dotnet.exe relative shared store\<arch>\<tfm>
26-
* o Global location
27-
* Windows: global default location (Program Files) or globally registered location (registry) + store\<arch>\<tfm>
28-
* Linux/macOS: none (no global locations are considered)
29-
*/
30-
void setup_shared_store_paths(const pal::string_t& tfm, host_mode_t host_mode,const pal::string_t& own_dir, arguments_t* args)
31-
{
32-
if (tfm.empty())
33-
{
34-
// Old (MNA < 1.1.*) "runtimeconfig.json" files do not contain TFM property.
35-
return;
36-
}
37-
38-
// Environment variable DOTNET_SHARED_STORE
39-
(void) get_env_shared_store_dirs(&args->env_shared_store, get_current_arch_name(), tfm);
40-
41-
// "dotnet.exe" relative shared store folder
42-
if (host_mode == host_mode_t::muxer)
43-
{
44-
args->dotnet_shared_store = own_dir;
45-
append_path(&args->dotnet_shared_store, RUNTIME_STORE_DIRECTORY_NAME);
46-
append_path(&args->dotnet_shared_store, get_current_arch_name());
47-
append_path(&args->dotnet_shared_store, tfm.c_str());
48-
}
49-
50-
// Global shared store dir
51-
bool multilevel_lookup = multilevel_lookup_enabled();
52-
if (multilevel_lookup)
53-
{
54-
get_global_shared_store_dirs(&args->global_shared_stores, get_current_arch_name(), tfm);
55-
}
56-
}
57-
5818
bool parse_arguments(
5919
const hostpolicy_init_t& init,
6020
const int argc, const pal::char_t* argv[],
@@ -92,12 +52,8 @@ bool parse_arguments(
9252

9353
bool success = init_arguments(
9454
managed_application_path,
95-
init.host_info,
96-
init.tfm,
9755
init.host_mode,
98-
init.additional_deps_serialized,
9956
init.deps_file,
100-
init.probe_paths,
10157
/* init_from_file_system */ false,
10258
args);
10359
if (success)
@@ -156,18 +112,12 @@ bool set_root_from_app(const pal::string_t& managed_application_path,
156112

157113
bool init_arguments(
158114
const pal::string_t& managed_application_path,
159-
const host_startup_info_t& host_info,
160-
const pal::string_t& tfm,
161115
host_mode_t host_mode,
162-
const pal::string_t& additional_deps_serialized,
163116
const pal::string_t& deps_file,
164-
const std::vector<pal::string_t>& probe_paths,
165117
bool init_from_file_system,
166118
arguments_t& args)
167119
{
168120
args.host_mode = host_mode;
169-
args.host_path = host_info.host_path;
170-
args.additional_deps_serialized = additional_deps_serialized;
171121

172122
// Components are never loaded from the bundle, the managed_application_path always means a file system path for a component case.
173123
if (!set_root_from_app(managed_application_path, /* file_system_lookup_only */ init_from_file_system, args))
@@ -182,19 +132,10 @@ bool init_arguments(
182132
args.app_root = get_directory(args.deps_path);
183133
}
184134

185-
for (const auto& probe : probe_paths)
186-
{
187-
args.probe_paths.push_back(probe);
188-
}
189-
190135
if (args.deps_path.empty())
191136
{
192137
args.deps_path = get_deps_from_app_binary(args.app_root, args.managed_application);
193138
}
194139

195-
pal::get_default_servicing_directory(&args.core_servicing);
196-
197-
setup_shared_store_paths(tfm, host_mode, get_directory(args.host_path), &args);
198-
199140
return true;
200141
}

src/native/corehost/hostpolicy/args.h

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -90,16 +90,9 @@ struct probe_config_t
9090
struct arguments_t
9191
{
9292
host_mode_t host_mode;
93-
pal::string_t host_path;
9493
pal::string_t app_root;
9594
pal::string_t deps_path;
96-
pal::string_t core_servicing;
97-
std::vector<pal::string_t> probe_paths;
9895
pal::string_t managed_application;
99-
std::vector<pal::string_t> global_shared_stores;
100-
pal::string_t dotnet_shared_store;
101-
std::vector<pal::string_t> env_shared_store;
102-
pal::string_t additional_deps_serialized;
10396

10497
int app_argc;
10598
const pal::char_t** app_argv;
@@ -110,21 +103,8 @@ struct arguments_t
110103
{
111104
if (trace::is_enabled())
112105
{
113-
trace::verbose(_X("-- arguments_t: host_path='%s' app_root='%s' deps='%s' core_svc='%s' mgd_app='%s'"),
114-
host_path.c_str(), app_root.c_str(), deps_path.c_str(), core_servicing.c_str(), managed_application.c_str());
115-
for (const auto& probe : probe_paths)
116-
{
117-
trace::verbose(_X("-- arguments_t: probe dir: '%s'"), probe.c_str());
118-
}
119-
for (const auto& shared : env_shared_store)
120-
{
121-
trace::verbose(_X("-- arguments_t: env shared store: '%s'"), shared.c_str());
122-
}
123-
trace::verbose(_X("-- arguments_t: dotnet shared store: '%s'"), dotnet_shared_store.c_str());
124-
for (const auto& global_shared : global_shared_stores)
125-
{
126-
trace::verbose(_X("-- arguments_t: global shared store: '%s'"), global_shared.c_str());
127-
}
106+
trace::verbose(_X("-- arguments_t: app_root='%s' deps='%s' mgd_app='%s'"),
107+
app_root.c_str(), deps_path.c_str(), managed_application.c_str());
128108
}
129109
}
130110
};
@@ -135,12 +115,8 @@ bool parse_arguments(
135115
arguments_t& arg);
136116
bool init_arguments(
137117
const pal::string_t& managed_application_path,
138-
const host_startup_info_t& host_info,
139-
const pal::string_t& tfm,
140118
host_mode_t host_mode,
141-
const pal::string_t& additional_deps_serialized,
142119
const pal::string_t& deps_file,
143-
const std::vector<pal::string_t>& probe_paths,
144120
bool init_from_file_system,
145121
arguments_t& args);
146122

src/native/corehost/hostpolicy/deps_resolver.cpp

Lines changed: 14 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#include "deps_entry.h"
1010
#include "deps_format.h"
1111
#include "deps_resolver.h"
12+
#include "shared_store.h"
1213
#include <utils.h>
1314
#include <fx_ver.h>
1415

@@ -175,36 +176,17 @@ namespace
175176
}
176177
} // end of anonymous namespace
177178

178-
179179
void deps_resolver_t::setup_shared_store_probes(
180-
const arguments_t& args)
180+
const std::vector<pal::string_t>& shared_stores)
181181
{
182-
for (const auto& shared : args.env_shared_store)
182+
for (const pal::string_t& shared : shared_stores)
183183
{
184184
if (pal::directory_exists(shared))
185185
{
186-
// Shared Store probe: DOTNET_SHARED_STORE environment variable
187186
m_probes.push_back(probe_config_t::lookup(shared));
188187
m_needs_file_existence_checks = true;
189188
}
190189
}
191-
192-
if (pal::directory_exists(args.dotnet_shared_store))
193-
{
194-
// Path relative to the location of "dotnet.exe" if it's being used to run the app
195-
m_probes.push_back(probe_config_t::lookup(args.dotnet_shared_store));
196-
m_needs_file_existence_checks = true;
197-
}
198-
199-
for (const auto& global_shared : args.global_shared_stores)
200-
{
201-
if (global_shared != args.dotnet_shared_store && pal::directory_exists(global_shared))
202-
{
203-
// Global store probe: the global location
204-
m_probes.push_back(probe_config_t::lookup(global_shared));
205-
m_needs_file_existence_checks = true;
206-
}
207-
}
208190
}
209191

210192
pal::string_t deps_resolver_t::get_lookup_probe_directories()
@@ -223,11 +205,12 @@ pal::string_t deps_resolver_t::get_lookup_probe_directories()
223205
}
224206

225207
void deps_resolver_t::setup_probe_config(
226-
const arguments_t& args)
208+
const std::vector<pal::string_t>& shared_stores,
209+
const std::vector<pal::string_t>& additional_probe_paths)
227210
{
228-
if (pal::directory_exists(args.core_servicing))
211+
if (pal::directory_exists(m_core_servicing))
229212
{
230-
pal::string_t ext_ni = args.core_servicing;
213+
pal::string_t ext_ni = m_core_servicing;
231214
append_path(&ext_ni, get_current_arch_name());
232215
if (pal::directory_exists(ext_ni))
233216
{
@@ -236,7 +219,7 @@ void deps_resolver_t::setup_probe_config(
236219
}
237220

238221
// Servicing normal probe.
239-
pal::string_t ext_pkgs = args.core_servicing;
222+
pal::string_t ext_pkgs = m_core_servicing;
240223
append_path(&ext_pkgs, _X("pkgs"));
241224
m_probes.push_back(probe_config_t::svc(ext_pkgs));
242225

@@ -256,11 +239,11 @@ void deps_resolver_t::setup_probe_config(
256239
}
257240
}
258241

259-
setup_shared_store_probes(args);
242+
setup_shared_store_probes(shared_stores);
260243

261-
if (!args.probe_paths.empty())
244+
if (!additional_probe_paths.empty())
262245
{
263-
for (const auto& probe : args.probe_paths)
246+
for (const auto& probe : additional_probe_paths)
264247
{
265248
// Additional paths
266249
m_probes.push_back(probe_config_t::lookup(probe));
@@ -271,7 +254,7 @@ void deps_resolver_t::setup_probe_config(
271254

272255
if (trace::is_enabled())
273256
{
274-
trace::verbose(_X("-- Listing probe configurations..."));
257+
trace::verbose(_X("-- Probe configurations:"));
275258
for (const auto& pc : m_probes)
276259
{
277260
pc.print();
@@ -617,7 +600,7 @@ void deps_resolver_t::init_known_entry_path(const deps_entry_t& entry, const pal
617600
}
618601
}
619602

620-
void deps_resolver_t::resolve_additional_deps(const pal::string_t& additional_deps_serialized, const deps_json_t::rid_fallback_graph_t* rid_fallback_graph)
603+
void deps_resolver_t::resolve_additional_deps(const pal::char_t* additional_deps_serialized, const deps_json_t::rid_fallback_graph_t* rid_fallback_graph)
621604
{
622605
if (!m_is_framework_dependent
623606
|| m_host_mode == host_mode_t::libhost)
@@ -636,7 +619,7 @@ void deps_resolver_t::resolve_additional_deps(const pal::string_t& additional_de
636619
return;
637620
}
638621

639-
if (additional_deps_serialized.empty())
622+
if (additional_deps_serialized == nullptr || pal::strlen(additional_deps_serialized) == 0)
640623
{
641624
return;
642625
}

src/native/corehost/hostpolicy/deps_resolver.h

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,17 +44,20 @@ class deps_resolver_t
4444
deps_resolver_t(
4545
const arguments_t& args,
4646
const fx_definition_vector_t& fx_definitions,
47+
const pal::char_t* additional_deps_serialized,
48+
const std::vector<pal::string_t>& shared_stores,
49+
const std::vector<pal::string_t>& additional_probe_paths,
4750
const deps_json_t::rid_fallback_graph_t* root_framework_rid_fallback_graph,
4851
bool is_framework_dependent)
4952
: m_fx_definitions(fx_definitions)
5053
, m_app_dir(args.app_root)
5154
, m_host_mode(args.host_mode)
5255
, m_managed_app(args.managed_application)
53-
, m_core_servicing(args.core_servicing)
5456
, m_is_framework_dependent(is_framework_dependent)
5557
, m_needs_file_existence_checks(false)
5658
{
5759
m_fx_deps.resize(m_fx_definitions.size());
60+
pal::get_default_servicing_directory(&m_core_servicing);
5861

5962
// Process from lowest (root) to highest (app) framework.
6063
// If we weren't explicitly given a rid fallback graph, that of
@@ -82,9 +85,9 @@ class deps_resolver_t
8285
}
8386
}
8487

85-
resolve_additional_deps(args.additional_deps_serialized, root_framework_rid_fallback_graph);
88+
resolve_additional_deps(additional_deps_serialized, root_framework_rid_fallback_graph);
8689

87-
setup_probe_config(args);
90+
setup_probe_config(shared_stores, additional_probe_paths);
8891
}
8992

9093
bool valid(pal::string_t* errors)
@@ -172,17 +175,18 @@ class deps_resolver_t
172175

173176
private:
174177
void setup_shared_store_probes(
175-
const arguments_t& args);
178+
const std::vector<pal::string_t>& shared_stores);
176179

177180
void setup_probe_config(
178-
const arguments_t& args);
181+
const std::vector<pal::string_t>& shared_stores,
182+
const std::vector<pal::string_t>& additional_probe_paths);
179183

180184
void init_known_entry_path(
181185
const deps_entry_t& entry,
182186
const pal::string_t& path);
183187

184188
void resolve_additional_deps(
185-
const pal::string_t& additional_deps_serialized,
189+
const pal::char_t* additional_deps_serialized,
186190
const deps_json_t::rid_fallback_graph_t* rid_fallback_graph);
187191

188192
const deps_json_t& get_app_deps() const

0 commit comments

Comments
 (0)