Index: src/OFPlugin.m ================================================================== --- src/OFPlugin.m +++ src/OFPlugin.m @@ -33,16 +33,18 @@ #ifdef _WIN32 # define dlsym(handle, symbol) GetProcAddress(handle, symbol) # define dlclose(handle) FreeLibrary(handle) #endif +typedef OFPlugin* (*init_plugin_t)(void); + @implementation OFPlugin + (id)pluginFromFile: (OFString*)path { void *pool = objc_autoreleasePoolPush(); of_plugin_handle_t handle; - OFPlugin *(*initPlugin)(void); + init_plugin_t initPlugin; OFPlugin *plugin; path = [path stringByAppendingString: @PLUGIN_SUFFIX]; #ifndef _WIN32 @@ -54,12 +56,12 @@ @throw [OFInitializationFailedException exceptionWithClass: self]; objc_autoreleasePoolPop(pool); - initPlugin = (OFPlugin*(*)(void))dlsym(handle, "init_plugin"); - if (initPlugin == NULL || (plugin = initPlugin()) == nil) { + initPlugin = (init_plugin_t)(uintptr_t)dlsym(handle, "init_plugin"); + if (initPlugin == (init_plugin_t)0 || (plugin = initPlugin()) == nil) { dlclose(handle); @throw [OFInitializationFailedException exceptionWithClass: self]; }