Serializing an EXTERNALSXP can lead to an endless loop #1303
Open
Description
When a WriteItem
is called with an EXTERNALSXP that is not Code
, Function
or DispatchTable
, it ends up in an endless loop.
WriteItem
calls to an externalCodeWrite
function pointer, which is set to serializeRir
. Then it calls WriteItem
with the result of rirDecompile
.
Currently, the rirDecompile
function only deserializes Code
, Function
and DispatchTable
types. For all others it returns the SEXP unmodified.
Hence the second call to WriteItem
is the same as the first one and it loops endlesly.