From 8e74f3a7bbd31776e3fcd4c50c05aabaa78da78e Mon Sep 17 00:00:00 2001 From: luke Date: Sat, 25 May 2024 14:31:03 +0000 Subject: [PATCH] Replace allocList/SET_TYPEOF idiom with allocLang. git-svn-id: https://svn.r-project.org/R/trunk@86618 00db46b3-68df-0310-9c12-caf00c1e9a41 --- src/library/stats/src/deriv.c | 3 +-- src/library/stats/src/model.c | 3 +-- src/main/attrib.c | 3 +-- src/main/coerce.c | 3 +-- src/main/eval.c | 3 +-- src/main/options.c | 3 +-- src/main/subset.c | 3 +-- 7 files changed, 7 insertions(+), 14 deletions(-) diff --git a/src/library/stats/src/deriv.c b/src/library/stats/src/deriv.c index 9f4b005473e..1d117ec630b 100644 --- a/src/library/stats/src/deriv.c +++ b/src/library/stats/src/deriv.c @@ -487,8 +487,7 @@ static SEXP D(SEXP expr, SEXP var) UNPROTECT(4); } else if (CAR(expr) == SqrtSymbol) { - PROTECT(expr1 = allocList(3)); - SET_TYPEOF(expr1, LANGSXP); + PROTECT(expr1 = allocLang(3)); SETCAR(expr1, PowerSymbol); SETCADR(expr1, CADR(expr)); SETCADDR(expr1, Constant(0.5)); diff --git a/src/library/stats/src/model.c b/src/library/stats/src/model.c index ab27b5963a8..6ef57808e5c 100644 --- a/src/library/stats/src/model.c +++ b/src/library/stats/src/model.c @@ -484,8 +484,7 @@ SEXP modelmatrix(SEXP call, SEXP op, SEXP args, SEXP rho) PROTECT(contr1 = allocVector(VECSXP, nVar)); PROTECT(contr2 = allocVector(VECSXP, nVar)); - PROTECT(expr = allocList(3)); - SET_TYPEOF(expr, LANGSXP); + PROTECT(expr = allocLang(3)); SETCAR(expr, install("contrasts")); SETCADDR(expr, allocVector(LGLSXP, 1)); diff --git a/src/main/attrib.c b/src/main/attrib.c index 4f7a103ba9d..603ae178143 100644 --- a/src/main/attrib.c +++ b/src/main/attrib.c @@ -929,8 +929,7 @@ attribute_hidden SEXP do_namesgets(SEXP call, SEXP op, SEXP args, SEXP env) SEXP names = CADR(args); if (names != R_NilValue && ! (TYPEOF(names) == STRSXP && ATTRIB(names) == R_NilValue)) { - PROTECT(call = allocList(2)); - SET_TYPEOF(call, LANGSXP); + PROTECT(call = allocLang(2)); SETCAR(call, R_AsCharacterSymbol); SETCADR(call, names); names = eval(call, env); diff --git a/src/main/coerce.c b/src/main/coerce.c index bc3c1f12deb..2c8fb8a0375 100644 --- a/src/main/coerce.c +++ b/src/main/coerce.c @@ -2737,8 +2737,7 @@ attribute_hidden SEXP do_docall(SEXP call, SEXP op, SEXP args, SEXP rho) n = length(args); PROTECT(names = getAttrib(args, R_NamesSymbol)); - PROTECT(c = call = allocList(n + 1)); - SET_TYPEOF(c, LANGSXP); + PROTECT(c = call = allocLang(n + 1)); if( isString(fun) ) { const char *str = translateChar(STRING_ELT(fun, 0)); if (streql(str, ".Internal")) error("illegal usage"); diff --git a/src/main/eval.c b/src/main/eval.c index f97d52cef7b..5fcd0379116 100644 --- a/src/main/eval.c +++ b/src/main/eval.c @@ -2629,7 +2629,7 @@ static SEXP replaceCall(SEXP fun, SEXP val, SEXP args, SEXP rhs) PROTECT(args); PROTECT(rhs); PROTECT(val); - ptmp = tmp = allocList(length(args)+3); + ptmp = tmp = allocLang(length(args)+3); UNPROTECT(4); SETCAR(ptmp, fun); ptmp = CDR(ptmp); SETCAR(ptmp, val); ptmp = CDR(ptmp); @@ -2641,7 +2641,6 @@ static SEXP replaceCall(SEXP fun, SEXP val, SEXP args, SEXP rhs) } SETCAR(ptmp, rhs); SET_TAG(ptmp, R_valueSym); - SET_TYPEOF(tmp, LANGSXP); MARK_ASSIGNMENT_CALL(tmp); return tmp; } diff --git a/src/main/options.c b/src/main/options.c index ba9ea4c62e3..60077d70e37 100644 --- a/src/main/options.c +++ b/src/main/options.c @@ -117,8 +117,7 @@ static SEXP FindTaggedItem(SEXP lst, SEXP tag) static SEXP makeErrorCall(SEXP fun) { SEXP call; - PROTECT(call = allocList(1)); - SET_TYPEOF(call, LANGSXP); + PROTECT(call = allocLang(1)); SETCAR(call, fun); UNPROTECT(1); return call; diff --git a/src/main/subset.c b/src/main/subset.c index 93a9fbada75..dbef02b252b 100644 --- a/src/main/subset.c +++ b/src/main/subset.c @@ -900,9 +900,8 @@ attribute_hidden SEXP do_subset_dflt(SEXP call, SEXP op, SEXP args, SEXP rho) if (type == LANGSXP) { ax = ans; - PROTECT(ans = allocList(LENGTH(ax))); + PROTECT(ans = allocLang(LENGTH(ax))); if ( LENGTH(ax) > 0 ) { - SET_TYPEOF(ans, LANGSXP); SEXP px; int i; for(px = ans, i = 0 ; px != R_NilValue ; px = CDR(px)) SETCAR(px, VECTOR_ELT(ax, i++));