diff options
Diffstat (limited to 'byterun/extern.c')
-rw-r--r-- | byterun/extern.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/byterun/extern.c b/byterun/extern.c index 0d6c33a08..9298c8a40 100644 --- a/byterun/extern.c +++ b/byterun/extern.c @@ -334,6 +334,10 @@ static void extern_rec(value v) case Custom_tag: { unsigned long sz_32, sz_64; char * ident = Custom_ops_val(v)->identifier; + void (*serialize)(value v, unsigned long * wsize_32, + unsigned long * wsize_64) + = Custom_ops_val(v)->serialize; + if (serialize == NULL) failwith("output_value: abstract value"); Write(CODE_CUSTOM); writeblock(ident, strlen(ident) + 1); Custom_ops_val(v)->serialize(v, &sz_32, &sz_64); |