diff --git a/src/ircode.c b/src/ircode.c index 90dab5f63d494..a89d0140e0d88 100644 --- a/src/ircode.c +++ b/src/ircode.c @@ -322,6 +322,11 @@ static void jl_encode_value_(jl_ircode_state *s, jl_value_t *v, int as_literal) jl_encode_value(s, jl_get_nth_field(v, 0)); jl_encode_value(s, jl_get_nth_field(v, 1)); } + else if (jl_is_enternode(v)) { + write_uint8(s->s, TAG_ENTERNODE); + jl_encode_value(s, jl_get_nth_field(v, 0)); + jl_encode_value(s, jl_get_nth_field(v, 1)); + } else if (jl_is_argument(v)) { write_uint8(s->s, TAG_ARGUMENT); jl_encode_value(s, jl_get_nth_field(v, 0)); @@ -721,6 +726,11 @@ static jl_value_t *jl_decode_value(jl_ircode_state *s) JL_GC_DISABLED set_nth_field(jl_gotoifnot_type, v, 0, jl_decode_value(s), 0); set_nth_field(jl_gotoifnot_type, v, 1, jl_decode_value(s), 0); return v; + case TAG_ENTERNODE: + v = jl_new_struct_uninit(jl_enternode_type); + set_nth_field(jl_enternode_type, v, 0, jl_decode_value(s), 0); + set_nth_field(jl_enternode_type, v, 1, jl_decode_value(s), 0); + return v; case TAG_ARGUMENT: v = jl_new_struct_uninit(jl_argument_type); set_nth_field(jl_argument_type, v, 0, jl_decode_value(s), 0); diff --git a/src/serialize.h b/src/serialize.h index 1bd29e9cc5911..2a91189dce739 100644 --- a/src/serialize.h +++ b/src/serialize.h @@ -65,8 +65,9 @@ extern "C" { #define TAG_RELOC_METHODROOT 57 #define TAG_BINDING 58 #define TAG_MEMORYT 59 +#define TAG_ENTERNODE 60 -#define LAST_TAG 59 +#define LAST_TAG 60 #define write_uint8(s, n) ios_putc((n), (s)) #define read_uint8(s) ((uint8_t)ios_getc((s)))