diff options
-rw-r--r-- | cmdline/cmdline_types.h | 10 | ||||
-rw-r--r-- | runtime/parsed_options.cc | 2 | ||||
-rw-r--r-- | runtime/runtime.h | 2 | ||||
-rw-r--r-- | runtime/runtime_options.def | 4 | ||||
-rw-r--r-- | test/900-hello-plugin/expected.txt | 2 | ||||
-rw-r--r-- | test/900-hello-plugin/load_unload.cc | 3 | ||||
-rwxr-xr-x | test/900-hello-plugin/run | 1 |
7 files changed, 15 insertions, 9 deletions
diff --git a/cmdline/cmdline_types.h b/cmdline/cmdline_types.h index 71c4e95921..cd19fa415c 100644 --- a/cmdline/cmdline_types.h +++ b/cmdline/cmdline_types.h @@ -401,19 +401,19 @@ struct CmdlineType<std::vector<Plugin>> : CmdlineTypeParser<std::vector<Plugin>> }; template <> -struct CmdlineType<std::vector<ti::Agent>> : CmdlineTypeParser<std::vector<ti::Agent>> { +struct CmdlineType<std::list<ti::Agent>> : CmdlineTypeParser<std::list<ti::Agent>> { Result Parse(const std::string& args) { - assert(false && "Use AppendValues() for an Agent vector type"); - return Result::Failure("Unconditional failure: Agent vector must be appended: " + args); + assert(false && "Use AppendValues() for an Agent list type"); + return Result::Failure("Unconditional failure: Agent list must be appended: " + args); } Result ParseAndAppend(const std::string& args, - std::vector<ti::Agent>& existing_value) { + std::list<ti::Agent>& existing_value) { existing_value.emplace_back(args); return Result::SuccessNoValue(); } - static const char* Name() { return "std::vector<ti::Agent>"; } + static const char* Name() { return "std::list<ti::Agent>"; } }; template <> diff --git a/runtime/parsed_options.cc b/runtime/parsed_options.cc index 4d787db5ac..0784e599b5 100644 --- a/runtime/parsed_options.cc +++ b/runtime/parsed_options.cc @@ -96,7 +96,7 @@ std::unique_ptr<RuntimeParser> ParsedOptions::MakeParser(bool ignore_unrecognize // .WithType<std::vector<ti::Agent>>().AppendValues() // .IntoKey(M::AgentLib) .Define("-agentpath:_") - .WithType<std::vector<ti::Agent>>().AppendValues() + .WithType<std::list<ti::Agent>>().AppendValues() .IntoKey(M::AgentPath) .Define("-Xms_") .WithType<MemoryKiB>() diff --git a/runtime/runtime.h b/runtime/runtime.h index d244a9b618..92feabb459 100644 --- a/runtime/runtime.h +++ b/runtime/runtime.h @@ -733,7 +733,7 @@ class Runtime { std::string class_path_string_; std::vector<std::string> properties_; - std::vector<ti::Agent> agents_; + std::list<ti::Agent> agents_; std::vector<Plugin> plugins_; // The default stack size for managed threads created by the runtime. diff --git a/runtime/runtime_options.def b/runtime/runtime_options.def index e68a1b2681..16190cd3c4 100644 --- a/runtime/runtime_options.def +++ b/runtime/runtime_options.def @@ -120,8 +120,8 @@ RUNTIME_OPTIONS_KEY (Unit, NoDexFileFallback) RUNTIME_OPTIONS_KEY (std::string, CpuAbiList) RUNTIME_OPTIONS_KEY (std::string, Fingerprint) RUNTIME_OPTIONS_KEY (ExperimentalFlags, Experimental, ExperimentalFlags::kNone) // -Xexperimental:{...} -RUNTIME_OPTIONS_KEY (std::vector<ti::Agent>, AgentLib) // -agentlib:<libname>=<options> -RUNTIME_OPTIONS_KEY (std::vector<ti::Agent>, AgentPath) // -agentpath:<libname>=<options> +RUNTIME_OPTIONS_KEY (std::list<ti::Agent>, AgentLib) // -agentlib:<libname>=<options> +RUNTIME_OPTIONS_KEY (std::list<ti::Agent>, AgentPath) // -agentpath:<libname>=<options> RUNTIME_OPTIONS_KEY (std::vector<Plugin>, Plugins) // -Xplugin:<library> // Not parse-able from command line, but can be provided explicitly. diff --git a/test/900-hello-plugin/expected.txt b/test/900-hello-plugin/expected.txt index 43db31c722..c160f65d31 100644 --- a/test/900-hello-plugin/expected.txt +++ b/test/900-hello-plugin/expected.txt @@ -3,6 +3,8 @@ Agent_OnLoad called with options "test_900" GetEnvHandler called in test 900 GetEnvHandler called with version 0x900fffff GetEnv returned '900' environment! +Agent_OnLoad called with options "test_900_round_2" Hello, world! Agent_OnUnload called +Agent_OnUnload called ArtPlugin_Deinitialize called in test 900 diff --git a/test/900-hello-plugin/load_unload.cc b/test/900-hello-plugin/load_unload.cc index a38cc3d6ac..290997aa08 100644 --- a/test/900-hello-plugin/load_unload.cc +++ b/test/900-hello-plugin/load_unload.cc @@ -52,6 +52,9 @@ extern "C" JNIEXPORT jint JNICALL Agent_OnLoad(JavaVM* vm, char* options, void* reserved ATTRIBUTE_UNUSED) { printf("Agent_OnLoad called with options \"%s\"\n", options); + if (strcmp("test_900_round_2", options) == 0) { + return 0; + } uintptr_t env = 0; jint res = vm->GetEnv(reinterpret_cast<void**>(&env), TEST_900_ENV_VERSION_NUMBER); if (res != JNI_OK) { diff --git a/test/900-hello-plugin/run b/test/900-hello-plugin/run index 50835f89af..c633f6df5d 100755 --- a/test/900-hello-plugin/run +++ b/test/900-hello-plugin/run @@ -19,4 +19,5 @@ if [[ "$@" == *"-O"* ]]; then plugin=libartagent.so fi ./default-run "$@" --runtime-option -agentpath:${plugin}=test_900 \ + --runtime-option -agentpath:${plugin}=test_900_round_2 \ --android-runtime-option -Xplugin:${plugin} |