From 80d3918b132b126475e82c3891664ca956c80cec Mon Sep 17 00:00:00 2001 From: Jon Siwek Date: Mon, 20 Apr 2020 15:20:42 -0700 Subject: [PATCH] Deprecate returning Val* from BIFs --- NEWS | 2 ++ src/Func.cc | 3 +++ src/Func.h | 3 +++ 3 files changed, 8 insertions(+) diff --git a/NEWS b/NEWS index 2fb081aa1c..52a3a6a2d1 100644 --- a/NEWS +++ b/NEWS @@ -117,6 +117,8 @@ Deprecated Functionality - ``binpac::string_to_val()`` is deprecated, use ``StringVal`` constructor. +- Returning ``Val*`` from BIFs is deprecated, return ``IntrusivePtr`` instead. + Zeek 3.1.0 ========== diff --git a/src/Func.cc b/src/Func.cc index d7fa698e8a..cc8e0b92f3 100644 --- a/src/Func.cc +++ b/src/Func.cc @@ -891,6 +891,9 @@ function_ingredients::~function_ingredients() delete inits; } +BifReturnVal::BifReturnVal(std::nullptr_t) noexcept + { } + BifReturnVal::BifReturnVal(Val* v) noexcept : rval(AdoptRef{}, v) { } diff --git a/src/Func.h b/src/Func.h index a66bc5934f..dff2c9a36b 100644 --- a/src/Func.h +++ b/src/Func.h @@ -201,6 +201,9 @@ public: : rval(AdoptRef{}, v.release()) { } + BifReturnVal(std::nullptr_t) noexcept; + + [[deprecated("Remove in v4.1. Return an IntrusivePtr instead.")]] BifReturnVal(Val* v) noexcept; private: