From e5302c7cfa9175314749ec3ff39559b943d88aa0 Mon Sep 17 00:00:00 2001 From: shikokuchuo <53399081+shikokuchuo@users.noreply.github.com> Date: Mon, 14 Oct 2024 15:27:54 +0100 Subject: [PATCH] use compile time initialization for fn ptrs --- src/shikokuchuo.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/shikokuchuo.c b/src/shikokuchuo.c index 7d2e488a..68cfa342 100644 --- a/src/shikokuchuo.c +++ b/src/shikokuchuo.c @@ -43,8 +43,8 @@ SEXP ichimoku_int_zero; SEXP ichimoku_int_three; SEXP ichimoku_false; -SEXP (*naofun)(SEXP); -SEXP (*jsofun)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +SEXP (*naofun)(SEXP) = NULL; +SEXP (*jsofun)(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP) = NULL; // rolling max over a window SEXP _wmax(SEXP x, SEXP window) { @@ -359,8 +359,6 @@ static void RegisterSymbols(void) { ichimoku_PeriodsSymbol = Rf_install("periods"); ichimoku_PeriodicitySymbol = Rf_install("periodicity"); ichimoku_TickerSymbol = Rf_install("ticker"); - naofun = (SEXP (*)(SEXP)) R_GetCCallable("xts", "na_omit_xts"); - jsofun = NULL; } static void PreserveObjects(void) { @@ -408,6 +406,7 @@ static const R_CallMethodDef CallEntries[] = { void attribute_visible R_init_ichimoku(DllInfo* dll) { RegisterSymbols(); PreserveObjects(); + naofun = (SEXP (*)(SEXP)) R_GetCCallable("xts", "na_omit_xts"); R_registerRoutines(dll, NULL, CallEntries, NULL, NULL); R_useDynamicSymbols(dll, FALSE); R_forceSymbols(dll, TRUE);