From a8f7fd2719673998242df9d3bd09ca01b421992e Mon Sep 17 00:00:00 2001 From: legendecas Date: Tue, 15 Oct 2019 14:17:27 +0800 Subject: [PATCH] scope: disallow copying scopes to prevent double close of scopes --- napi.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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;