1
0
Эх сурвалжийг харах

ENH: Also look into data segment (consistant with other implementation)

Mathieu Malaterre 20 жил өмнө
parent
commit
347efdedd5

+ 5 - 1
Source/kwsys/DynamicLoader.cxx

@@ -80,7 +80,11 @@ DynamicLoader::GetSymbolAddress(LibHandle lib, const char* sym)
   void* addr;
   int status;
 
-  status = shl_findsym (&lib, sym, TYPE_PROCEDURE, &addr);
+  /* TYPE_PROCEDURE Look for a function or procedure.
+   * TYPE_DATA      Look for a symbol in the data segment (for example, variables).
+   * TYPE_UNDEFINED Look for any symbol.
+   */
+  status = shl_findsym (&lib, sym, TYPE_UNDEFINED, &addr);
   void* result = (status < 0) ? (void*)0 : addr;
 
   // Hack to cast pointer-to-data to pointer-to-function.