summaryrefslogtreecommitdiffstats
path: root/stdlib/callback.ml
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/callback.ml')
-rw-r--r--stdlib/callback.ml4
1 files changed, 3 insertions, 1 deletions
diff --git a/stdlib/callback.ml b/stdlib/callback.ml
index 34e7304f7..c9cf062bf 100644
--- a/stdlib/callback.ml
+++ b/stdlib/callback.ml
@@ -20,4 +20,6 @@ let register name v =
register_named_value name (Obj.repr v)
let register_exception name (exn : exn) =
- register_named_value name (Obj.field (Obj.repr exn) 0)
+ let exn = Obj.repr exn in
+ let slot = if Obj.size exn = 1 then exn else Obj.field exn 1 in
+ register_named_value name slot