diff --git a/ChangeLog b/ChangeLog index 4972de53e..52f6c3bc6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2022-03-14 Dirk Eddelbuettel + + * DESCRIPTION (Version, Date): Roll minor version + * inst/include/Rcpp/config.h: Idem + +2022-03-13 Iñaki Ucar + + * src/barrier.cpp: Untag tokens upon removal from the precious list, + so that the internal reference counter can be safely decremented by R + 2022-03-13 Dirk Eddelbuettel * DESCRIPTION (Version, Date): Roll minor version diff --git a/DESCRIPTION b/DESCRIPTION index f63d3180c..506a7666d 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: Rcpp Title: Seamless R and C++ Integration -Version: 1.0.8.3 -Date: 2022-03-13 +Version: 1.0.8.4 +Date: 2022-03-14 Author: Dirk Eddelbuettel, Romain Francois, JJ Allaire, Kevin Ushey, Qiang Kou, Nathan Russell, Inaki Ucar, Douglas Bates and John Chambers Maintainer: Dirk Eddelbuettel diff --git a/inst/NEWS.Rd b/inst/NEWS.Rd index f243d3077..e0c6f16f2 100644 --- a/inst/NEWS.Rd +++ b/inst/NEWS.Rd @@ -3,7 +3,7 @@ \newcommand{\ghpr}{\href{https://github.com/RcppCore/Rcpp/pull/#1}{##1}} \newcommand{\ghit}{\href{https://github.com/RcppCore/Rcpp/issues/#1}{##1}} -\section{Changes in Rcpp hotfix release version 1.0.8.3 (2022-03-13)}{ +\section{Changes in Rcpp hotfix release version 1.0.8.4 (2022-03-14)}{ \itemize{ \item Changes in Rcpp API: \itemize{ @@ -13,6 +13,8 @@ \code{std::unary_function} and \code{std::binary_function} with \code{std::function} (Dirk in \ghpr{1202} fixing \ghit{1201} and CRAN request) + \code Upon removal from precious list, the tag is set to null + (Iñaki in \ghpr{1205} fixing \ghit{1203}) } \item Changes in Rcpp Documentation: \itemize{ diff --git a/inst/include/Rcpp/config.h b/inst/include/Rcpp/config.h index 39b816fdc..faf1264d8 100644 --- a/inst/include/Rcpp/config.h +++ b/inst/include/Rcpp/config.h @@ -30,7 +30,7 @@ #define RCPP_VERSION_STRING "1.0.8" // the current source snapshot (using four components, if a fifth is used in DESCRIPTION we ignore it) -#define RCPP_DEV_VERSION RcppDevVersion(1,0,8,3) -#define RCPP_DEV_VERSION_STRING "1.0.8.3" +#define RCPP_DEV_VERSION RcppDevVersion(1,0,8,4) +#define RCPP_DEV_VERSION_STRING "1.0.8.4" #endif diff --git a/src/barrier.cpp b/src/barrier.cpp index d5b86fcbf..374870ef2 100644 --- a/src/barrier.cpp +++ b/src/barrier.cpp @@ -2,7 +2,7 @@ // barrier.cpp: Rcpp R/C++ interface class library -- write barrier // // Copyright (C) 2010 - 2020 Dirk Eddelbuettel and Romain Francois -// Copyright (C) 2021 Dirk Eddelbuettel, Romain Francois and Iñaki Ucar +// Copyright (C) 2021 - 2022 Dirk Eddelbuettel, Romain Francois and Iñaki Ucar // // This file is part of Rcpp. // @@ -119,6 +119,7 @@ void Rcpp_precious_remove(SEXP token) { if (token == R_NilValue || TYPEOF(token) != LISTSXP) { return; } + SET_TAG(token, R_NilValue); SEXP before = CAR(token); SEXP after = CDR(token); SETCDR(before, after); diff --git a/tests/tinytest.R b/tests/tinytest.R index d15e8305d..f2480ee11 100644 --- a/tests/tinytest.R +++ b/tests/tinytest.R @@ -9,7 +9,7 @@ if (requireNamespace("tinytest", quietly=TRUE)) { ## Force tests to be executed if in dev release which we define as ## having a sub-release, eg 0.9.15.5 is one whereas 0.9.16 is not - if (FALSE && length(strsplit(packageDescription("Rcpp")$Version, "\\.")[[1]]) > 3) { # dev rel, and + if (length(strsplit(packageDescription("Rcpp")$Version, "\\.")[[1]]) > 3) { # dev rel, and if (Sys.getenv("RunAllRcppTests") != "no") { # if env.var not yet set message("Setting \"RunAllRcppTests\"=\"yes\" for development release\n") Sys.setenv("RunAllRcppTests"="yes")