[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