modif comtabilite

This commit is contained in:
2019-01-16 16:23:31 +01:00
parent 6b741a9666
commit 9312edc3ae
1844 changed files with 158848 additions and 55874 deletions
+53 -12
View File
@@ -13,7 +13,7 @@
*
* MIT License <https://github.com/nodejs/nan/blob/master/LICENSE.md>
*
* Version 2.10.0: current Node 9.8.0, Node 12: 0.12.18, Node 10: 0.10.48, iojs: 3.3.1
* Version 2.11.1: current Node 10.11.0, Node 12: 0.12.18, Node 10: 0.10.48, iojs: 3.3.1
*
* See https://github.com/nodejs/nan for the latest update to this file
**********************************************************************************/
@@ -36,6 +36,7 @@
#define NODE_7_0_MODULE_VERSION 51
#define NODE_8_0_MODULE_VERSION 57
#define NODE_9_0_MODULE_VERSION 59
#define NODE_10_0_MODULE_VERSION 64
#ifdef _MSC_VER
# define NAN_HAS_CPLUSPLUS_11 (_MSC_VER >= 1800)
@@ -91,6 +92,9 @@
namespace Nan {
#define NAN_CONCAT(a, b) NAN_CONCAT_HELPER(a, b)
#define NAN_CONCAT_HELPER(a, b) a##b
#define NAN_INLINE inline // TODO(bnoordhuis) Remove in v3.0.0.
#if defined(__GNUC__) && \
@@ -148,6 +152,21 @@ namespace Nan {
#define NAN_MODULE_INIT(name) \
void name(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE target)
#if NODE_MAJOR_VERSION >= 10 || \
NODE_MAJOR_VERSION == 9 && NODE_MINOR_VERSION >= 3
#define NAN_MODULE_WORKER_ENABLED(module_name, registration) \
extern "C" NODE_MODULE_EXPORT void \
NAN_CONCAT(node_register_module_v, NODE_MODULE_VERSION)( \
v8::Local<v8::Object> exports, v8::Local<v8::Value> module, \
v8::Local<v8::Context> context) \
{ \
registration(exports); \
}
#else
#define NAN_MODULE_WORKER_ENABLED(module_name, registration) \
NODE_MODULE(module_name, registration)
#endif
//=== CallbackInfo =============================================================
#include "nan_callbacks.h" // NOLINT(build/include)
@@ -560,6 +579,16 @@ class AsyncResource {
#endif
};
inline uv_loop_t* GetCurrentEventLoop() {
#if NODE_MAJOR_VERSION >= 10 || \
NODE_MAJOR_VERSION == 9 && NODE_MINOR_VERSION >= 3 || \
NODE_MAJOR_VERSION == 8 && NODE_MINOR_VERSION >= 10
return node::GetCurrentEventLoop(v8::Isolate::GetCurrent());
#else
return uv_default_loop();
#endif
}
//============ =================================================================
/* node 0.12 */
@@ -1031,7 +1060,11 @@ class Utf8String {
length_(0), str_(str_st_) {
HandleScope scope;
if (!from.IsEmpty()) {
#if V8_MAJOR_VERSION >= 7
v8::Local<v8::String> string = from->ToString(v8::Isolate::GetCurrent());
#else
v8::Local<v8::String> string = from->ToString();
#endif
if (!string.IsEmpty()) {
size_t len = 3 * string->Length() + 1;
assert(len <= INT_MAX);
@@ -1041,7 +1074,11 @@ class Utf8String {
}
const int flags =
v8::String::NO_NULL_TERMINATION | imp::kReplaceInvalidUtf8;
#if V8_MAJOR_VERSION >= 7
length_ = string->WriteUtf8(v8::Isolate::GetCurrent(), str_, static_cast<int>(len), 0, flags);
#else
length_ = string->WriteUtf8(str_, static_cast<int>(len), 0, flags);
#endif
str_[length_] = '\0';
}
}
@@ -1899,7 +1936,7 @@ inline MaybeLocal<v8::Value> Call(
const char* resource_name = "nan:AsyncBareProgressWorkerBase")
: AsyncWorker(callback_, resource_name) {
uv_async_init(
uv_default_loop()
GetCurrentEventLoop()
, &async
, AsyncProgress_
);
@@ -1940,16 +1977,20 @@ class AsyncBareProgressWorker : public AsyncBareProgressWorkerBase {
Callback *callback_,
const char* resource_name = "nan:AsyncBareProgressWorker")
: AsyncBareProgressWorkerBase(callback_, resource_name) {
uv_mutex_init(&async_lock);
}
virtual ~AsyncBareProgressWorker() {
uv_mutex_destroy(&async_lock);
}
class ExecutionProgress {
friend class AsyncBareProgressWorker;
public:
void Signal() const {
uv_mutex_lock(&that_->async_lock);
uv_async_send(&that_->async);
uv_mutex_unlock(&that_->async_lock);
}
void Send(const T* data, size_t count) const {
@@ -1965,6 +2006,9 @@ class AsyncBareProgressWorker : public AsyncBareProgressWorkerBase {
virtual void Execute(const ExecutionProgress& progress) = 0;
virtual void HandleProgressCallback(const T *data, size_t size) = 0;
protected:
uv_mutex_t async_lock;
private:
void Execute() /*final override*/ {
ExecutionProgress progress(this);
@@ -1983,21 +2027,19 @@ class AsyncProgressWorkerBase : public AsyncBareProgressWorker<T> {
const char* resource_name = "nan:AsyncProgressWorkerBase")
: AsyncBareProgressWorker<T>(callback_, resource_name), asyncdata_(NULL),
asyncsize_(0) {
uv_mutex_init(&async_lock);
}
virtual ~AsyncProgressWorkerBase() {
uv_mutex_destroy(&async_lock);
delete[] asyncdata_;
}
void WorkProgress() {
uv_mutex_lock(&async_lock);
uv_mutex_lock(&this->async_lock);
T *data = asyncdata_;
size_t size = asyncsize_;
asyncdata_ = NULL;
uv_mutex_unlock(&async_lock);
asyncsize_ = 0;
uv_mutex_unlock(&this->async_lock);
// Don't send progress events after we've already completed.
if (this->callback) {
@@ -2014,17 +2056,16 @@ class AsyncProgressWorkerBase : public AsyncBareProgressWorker<T> {
std::copy(data, data + count, it);
}
uv_mutex_lock(&async_lock);
uv_mutex_lock(&this->async_lock);
T *old_data = asyncdata_;
asyncdata_ = new_data;
asyncsize_ = count;
uv_mutex_unlock(&async_lock);
uv_async_send(&this->async);
uv_mutex_unlock(&this->async_lock);
delete[] old_data;
uv_async_send(&this->async);
}
uv_mutex_t async_lock;
T *asyncdata_;
size_t asyncsize_;
};
@@ -2161,7 +2202,7 @@ inline void AsyncExecuteComplete (uv_work_t* req) {
inline void AsyncQueueWorker (AsyncWorker* worker) {
uv_queue_work(
uv_default_loop()
GetCurrentEventLoop()
, &worker->request
, AsyncExecute
, reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)