From 34c11cf0a4f238654b011e3fd60e583a222d4498 Mon Sep 17 00:00:00 2001 From: legendecas Date: Tue, 15 Oct 2019 14:17:27 +0800 Subject: [PATCH] src: disallow copying, double close of scopes PR-URL: https://github.com/nodejs/node-addon-api/pull/566 Reviewed-By: NickNaso Reviewed-By: Michael Dawson Reviewed-By: Gabriel Schulhof --- napi.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/napi.h b/napi.h index 510c1968b..549c34123 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;