Could you use `Shield<SEXP>` inside the block to automatically handle the protect/unprotect?