hotspot/src/share/vm/runtime/os.cpp
changeset 20006 9dc2add3103b
parent 19986 33d188c66ed9
parent 19973 d98623e1f50b
child 22838 82c7497fbad4
child 22201 9c2ccfa3a5fe
--- a/hotspot/src/share/vm/runtime/os.cpp	Thu Sep 19 09:26:08 2013 +0200
+++ b/hotspot/src/share/vm/runtime/os.cpp	Thu Sep 19 09:34:20 2013 +0200
@@ -459,6 +459,7 @@
  */
 void* os::find_agent_function(AgentLibrary *agent_lib, bool check_lib,
                               const char *syms[], size_t syms_len) {
+  assert(agent_lib != NULL, "sanity check");
   const char *lib_name;
   void *handle = agent_lib->os_lib();
   void *entryName = NULL;
@@ -489,6 +490,7 @@
   void *proc_handle;
   void *save_handle;
 
+  assert(agent_lib != NULL, "sanity check");
   if (agent_lib->name() == NULL) {
     return false;
   }
@@ -498,14 +500,13 @@
   // We want to look in this process' symbol table.
   agent_lib->set_os_lib(proc_handle);
   ret = find_agent_function(agent_lib, true, syms, syms_len);
-  agent_lib->set_os_lib(save_handle);
   if (ret != NULL) {
     // Found an entry point like Agent_OnLoad_lib_name so we have a static agent
-    agent_lib->set_os_lib(proc_handle);
     agent_lib->set_valid();
     agent_lib->set_static_lib(true);
     return true;
   }
+  agent_lib->set_os_lib(save_handle);
   return false;
 }