[R-pkg-devel] Check if any object pointing to a given address is locked
Tony Wilkes
tony_@_w||ke@ @end|ng |rom out|ook@com
Thu Apr 24 14:36:57 CEST 2025
Hi everyone,
I have a question.
Given the address of an object ("address" in the sense given by, for example, "data.table::address()"), is it possible to check if any binding in any environment pointing to that address is locked?
So a function similar to "bindingIsLocked()", except the function checks all bindings sharing the same address, instead of checking a binding by name in a specific environment.
One use-case for this is to check if it's save to modify an object by reference.
For example, when saying x <- base::letters, x is not save to modify by reference:
Although the binding of x itself is not locked, the binding of base::letters is locked, and we obviously don't want to modify base::letters.
It should be possible, I think. R has a few pass-by-reference classes (like environments), so R should be able to check something like this. I just have no idea how exactly R checks this.
Thanks in advance for any response!
Kind regards,
Tony
[[alternative HTML version deleted]]
More information about the R-package-devel
mailing list