R的C级PROTECT宏定义在哪里?

时间:2015-11-12 00:22:42

标签: c r macros

R的源文件充满了对PROTECT()UNPROTECT()宏的调用,这些宏扩展然后从垃圾收集中撤消对R对象的保护。 (例如,参见Hadley Wickham先生R的this section,讨论他们的角色。)

我已经找到了R的资料来找到那些可能被定义的地方,但还没有走得太远。 grep'ing src的{​​{1}}目录找到了我these lines in src/include/Rinternals.h

#define PROTECT

然后我grep /* Pointer Protection and Unprotection */ #define PROTECT(s) Rf_protect(s) #define UNPROTECT(n) Rf_unprotect(n) #define UNPROTECT_PTR(s) Rf_unprotect_ptr(s) 来了解定义 it 的位置,然后陷入死胡同。它只在同一个文件中出现(4次),并且它们都没有给我一个关于它的价值的线索。

显然我缺少一些基本的东西。它是什么和/或我应该在哪里查看调用Rf_protect的代码扩展到什么代码?

0 个答案:

没有答案