瀏覽代碼

ENH: remove warning

Bill Hoffman 19 年之前
父節點
當前提交
4e586c822f
共有 1 個文件被更改,包括 7 次插入3 次删除
  1. 7 3
      Source/kwsys/DynamicLoader.cxx

+ 7 - 3
Source/kwsys/DynamicLoader.cxx

@@ -359,10 +359,14 @@ int DynamicLoader::CloseLibrary(DynamicLoader::LibraryHandle lib)
 DynamicLoader::SymbolPointer DynamicLoader::GetSymbolAddress(
   DynamicLoader::LibraryHandle lib, const char* sym)
 {
-  void* result = dlsym(lib, sym);
-
   // Hack to cast pointer-to-data to pointer-to-function.
-  return *reinterpret_cast<DynamicLoader::SymbolPointer*>(&result);
+  union 
+  {
+    void* pvoid;
+    DynamicLoader::SymbolPointer psym;
+  } result;
+  result.pvoid = dlsym(lib, sym);
+  return result.psym;
 }
 
 //----------------------------------------------------------------------------