summaryrefslogtreecommitdiffstats
path: root/byterun/extern.c
diff options
context:
space:
mode:
Diffstat (limited to 'byterun/extern.c')
-rw-r--r--byterun/extern.c4
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);