mirror of
https://github.com/nodejs/node-v0.x-archive.git
synced 2026-04-28 03:01:10 -04:00
uv: upgrade to feb267e
This commit is contained in:
3
deps/uv/include/uv.h
vendored
3
deps/uv/include/uv.h
vendored
@@ -1250,7 +1250,8 @@ UV_EXTERN uv_err_t uv_dlopen(const char* filename, uv_lib_t* library);
|
||||
UV_EXTERN uv_err_t uv_dlclose(uv_lib_t library);
|
||||
|
||||
/*
|
||||
* Retrieves a data pointer from a dynamic library.
|
||||
* Retrieves a data pointer from a dynamic library. It is legal for a symbol to
|
||||
* map to NULL.
|
||||
*/
|
||||
UV_EXTERN uv_err_t uv_dlsym(uv_lib_t library, const char* name, void** ptr);
|
||||
|
||||
|
||||
22
deps/uv/src/unix/dl.c
vendored
22
deps/uv/src/unix/dl.c
vendored
@@ -25,11 +25,17 @@
|
||||
#include <dlfcn.h>
|
||||
#include <errno.h>
|
||||
|
||||
/* The dl family of functions don't set errno. We need a good way to communicate
|
||||
* errors to the caller but there is only dlerror() and that returns a string -
|
||||
* a string that may or may not be safe to keep a reference to...
|
||||
*/
|
||||
static const uv_err_t uv_inval_ = { UV_EINVAL, EINVAL };
|
||||
|
||||
|
||||
uv_err_t uv_dlopen(const char* filename, uv_lib_t* library) {
|
||||
void* handle = dlopen(filename, RTLD_LAZY);
|
||||
if (handle == NULL) {
|
||||
return uv__new_sys_error(errno);
|
||||
return uv_inval_;
|
||||
}
|
||||
|
||||
*library = handle;
|
||||
@@ -39,7 +45,7 @@ uv_err_t uv_dlopen(const char* filename, uv_lib_t* library) {
|
||||
|
||||
uv_err_t uv_dlclose(uv_lib_t library) {
|
||||
if (dlclose(library) != 0) {
|
||||
return uv__new_sys_error(errno);
|
||||
return uv_inval_;
|
||||
}
|
||||
|
||||
return uv_ok_;
|
||||
@@ -47,9 +53,15 @@ uv_err_t uv_dlclose(uv_lib_t library) {
|
||||
|
||||
|
||||
uv_err_t uv_dlsym(uv_lib_t library, const char* name, void** ptr) {
|
||||
void* address = dlsym(library, name);
|
||||
if (address == NULL) {
|
||||
return uv__new_sys_error(errno);
|
||||
void* address;
|
||||
|
||||
/* Reset error status. */
|
||||
dlerror();
|
||||
|
||||
address = dlsym(library, name);
|
||||
|
||||
if (dlerror()) {
|
||||
return uv_inval_;
|
||||
}
|
||||
|
||||
*ptr = (void*) address;
|
||||
|
||||
Reference in New Issue
Block a user