File tree Expand file tree Collapse file tree 4 files changed +22
-6
lines changed Expand file tree Collapse file tree 4 files changed +22
-6
lines changed Original file line number Diff line number Diff line change @@ -7,7 +7,7 @@ code <- '
7
7
8
8
SEXP ps__define_errno(void) {
9
9
10
- SEXP env = PROTECT(Rf_allocSExp(ENVSXP ));
10
+ SEXP env = PROTECT(ps_new_env( ));
11
11
12
12
#define PS_ADD_ERRNO(err,str,val) \\
13
13
defineVar( \\
Original file line number Diff line number Diff line change 5
5
#define R_USE_C99_IN_CXX 1
6
6
#include <Rinternals.h>
7
7
#include <R_ext/Rdynload.h>
8
+ #include <Rversion.h>
8
9
9
10
#include "ps-internal.h"
10
11
11
12
/* ---------------------------------------------------------------------*/
12
13
/* Internals */
13
14
/* ---------------------------------------------------------------------*/
14
15
16
+ static R_INLINE SEXP ps_new_env (void ) {
17
+ SEXP env ;
18
+ #if R_VERSION >= R_Version (4 , 1 , 0 )
19
+ PROTECT (env = R_NewEnv (R_EmptyEnv , 1 , 29 ));
20
+ #else
21
+ PROTECT (env = Rf_allocSExp (ENVSXP ));
22
+ SET_FRAME (env , R_NilValue );
23
+ SET_ENCLOS (env , R_EmptyEnv );
24
+ SET_HASHTAB (env , R_NilValue );
25
+ SET_ATTRIB (env , R_NilValue );
26
+ #endif
27
+ UNPROTECT (1 );
28
+ return env ;
29
+ }
30
+
15
31
extern int PS__TESTING ;
16
32
extern int PS__DEBUG ;
17
33
Original file line number Diff line number Diff line change @@ -224,7 +224,7 @@ SEXP psp__waitpid(SEXP r_pid) {
224
224
}
225
225
SEXP ps__define_signals (void ) {
226
226
227
- SEXP signalenv = PROTECT (Rf_allocSExp ( ENVSXP ));
227
+ SEXP signalenv = PROTECT (ps_new_env ( ));
228
228
229
229
#define PS_ADD_SIGNAL (sig ) \
230
230
defineVar(install(#sig), PROTECT(ScalarInteger(sig)), signalenv); \
@@ -358,7 +358,7 @@ SEXP ps__define_signals(void) {
358
358
359
359
360
360
SEXP ps__define_socket_address_families (void ) {
361
- SEXP afenv = PROTECT (Rf_allocSExp ( ENVSXP ));
361
+ SEXP afenv = PROTECT (ps_new_env ( ));
362
362
363
363
#define PS_ADD_AF (af ) \
364
364
defineVar(install(#af), PROTECT(ScalarInteger(af)), afenv); \
@@ -508,7 +508,7 @@ SEXP ps__define_socket_address_families(void) {
508
508
}
509
509
510
510
SEXP ps__define_socket_types (void ) {
511
- SEXP env = PROTECT (Rf_allocSExp ( ENVSXP ));
511
+ SEXP env = PROTECT (ps_new_env ( ));
512
512
513
513
#define PS_ADD_SOCKET_TYPE (type ) \
514
514
defineVar(install(#type), PROTECT(ScalarInteger(type)), env); \
Original file line number Diff line number Diff line change @@ -763,7 +763,7 @@ SEXP ps__define_tcp_statuses(void) {
763
763
}
764
764
765
765
SEXP ps__define_socket_address_families () {
766
- SEXP afenv = PROTECT (Rf_allocSExp ( ENVSXP ));
766
+ SEXP afenv = PROTECT (ps_new_env ( ));
767
767
768
768
defineVar (install ("AF_INET" ), PROTECT (ScalarInteger (AF_INET )), afenv );
769
769
UNPROTECT (1 );
@@ -776,7 +776,7 @@ SEXP ps__define_socket_address_families() {
776
776
}
777
777
778
778
SEXP ps__define_socket_types () {
779
- SEXP env = PROTECT (Rf_allocSExp ( ENVSXP ));
779
+ SEXP env = PROTECT (ps_new_env ( ));
780
780
781
781
defineVar (install ("SOCK_STREAM" ), PROTECT (ScalarInteger (SOCK_STREAM )), env );
782
782
UNPROTECT (1 );
You can’t perform that action at this time.
0 commit comments