| Index: third_party/glew/src/glew.c
|
| ===================================================================
|
| --- third_party/glew/src/glew.c (revision 27788)
|
| +++ third_party/glew/src/glew.c (working copy)
|
| @@ -66,29 +66,18 @@
|
| #endif /* GLEW_MX */
|
|
|
| #if defined(__APPLE__)
|
| -#include <mach-o/dyld.h>
|
| +#include <dlfcn.h>
|
| #include <stdlib.h>
|
| #include <string.h>
|
|
|
| void* NSGLGetProcAddress (const GLubyte *name)
|
| {
|
| - static const struct mach_header* image = NULL;
|
| - NSSymbol symbol;
|
| - char* symbolName;
|
| + static void* image = NULL;
|
| if (NULL == image)
|
| {
|
| - image = NSAddImage("/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL", NSADDIMAGE_OPTION_RETURN_ON_ERROR);
|
| + image = dlopen("/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL", RTLD_LAZY | RTLD_LOCAL);
|
| }
|
| - /* prepend a '_' for the Unix C symbol mangling convention */
|
| - symbolName = malloc(strlen((const char*)name) + 2);
|
| - strcpy(symbolName+1, (const char*)name);
|
| - symbolName[0] = '_';
|
| - symbol = NULL;
|
| - /* if (NSIsSymbolNameDefined(symbolName))
|
| - symbol = NSLookupAndBindSymbol(symbolName); */
|
| - symbol = image ? NSLookupSymbolInImage(image, symbolName, NSLOOKUPSYMBOLINIMAGE_OPTION_BIND | NSLOOKUPSYMBOLINIMAGE_OPTION_RETURN_ON_ERROR) : NULL;
|
| - free(symbolName);
|
| - return symbol ? NSAddressOfSymbol(symbol) : NULL;
|
| + return image ? dlsym(image, (const char*) name) : NULL;
|
| }
|
| #endif /* __APPLE__ */
|
|
|
|
|