summaryrefslogtreecommitdiffstats
path: root/byterun/compare.c
diff options
context:
space:
mode:
authorDamien Doligez <damien.doligez-inria.fr>2007-02-09 13:31:15 +0000
committerDamien Doligez <damien.doligez-inria.fr>2007-02-09 13:31:15 +0000
commitf700284aac3f9bcafa29b40e4cedeadd6703d782 (patch)
tree463f0f8e3165cc294c17cb1677870947741a2ce6 /byterun/compare.c
parente1757faddcd080cc6a1d71a2aebd999399c5ab17 (diff)
fusion des changements 3.09.3 -> release309_merge310
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@7849 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'byterun/compare.c')
-rw-r--r--byterun/compare.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/byterun/compare.c b/byterun/compare.c
index 3337f77d0..4cd6df29e 100644
--- a/byterun/compare.c
+++ b/byterun/compare.c
@@ -199,7 +199,10 @@ static intnat compare_val(value v1, value v2, int total)
case Custom_tag: {
int res;
int (*compare)(value v1, value v2) = Custom_ops_val(v1)->compare;
- if (compare == NULL) caml_invalid_argument("equal: abstract value");
+ if (compare == NULL) {
+ compare_free_stack();
+ caml_invalid_argument("equal: abstract value");
+ }
caml_compare_unordered = 0;
res = Custom_ops_val(v1)->compare(v1, v2);
if (caml_compare_unordered && !total) return UNORDERED;