diff --git a/napi.h b/napi.h index 921aaa8bc..b825fb717 100644 --- a/napi.h +++ b/napi.h @@ -1729,6 +1729,10 @@ namespace Napi { explicit HandleScope(Napi::Env env); ~HandleScope(); + // Disallow copying to prevent double close of napi_handle_scope + HandleScope(HandleScope const &) = delete; + void operator=(HandleScope const &) = delete; + operator napi_handle_scope() const; Napi::Env Env() const; @@ -1744,6 +1748,10 @@ namespace Napi { explicit EscapableHandleScope(Napi::Env env); ~EscapableHandleScope(); + // Disallow copying to prevent double close of napi_escapable_handle_scope + EscapableHandleScope(EscapableHandleScope const &) = delete; + void operator=(EscapableHandleScope const &) = delete; + operator napi_escapable_handle_scope() const; Napi::Env Env() const; @@ -1761,6 +1769,10 @@ namespace Napi { CallbackScope(napi_env env, napi_async_context context); virtual ~CallbackScope(); + // Disallow copying to prevent double close of napi_callback_scope + CallbackScope(CallbackScope const &) = delete; + void operator=(CallbackScope const &) = delete; + operator napi_callback_scope() const; Napi::Env Env() const;