Skip to content

Commit 9efcf64

Browse files
Merge pull request #54 from hhugo/jsoo-leak-chan
Use dedicated runtime functions instead of relying on caml_ml_channels explicitly
2 parents 488e9b5 + 16b1bb0 commit 9efcf64

File tree

2 files changed

+12
-11
lines changed

2 files changed

+12
-11
lines changed

ppx_expect.opam

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ depends: [
2020
"ppxlib" {>= "0.28.0"}
2121
]
2222
available: arch != "arm32" & arch != "x86_32"
23+
conflicts: [
24+
"js_of_ocaml-compiler" {< "5.8"}
25+
]
26+
2327
synopsis: "Cram like framework for OCaml"
2428
description: "
2529
Part of the Jane Street's PPX rewriters collection.

runtime/runtime.js

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,30 +4,27 @@ var ppx_expect_runtime_saved_stdout
44
var ppx_expect_runtime_saved_stderr
55

66
//Provides: ppx_expect_runtime_before_test
7-
//Requires: caml_ml_channels
7+
//Requires: caml_ml_channel_redirect
88
//Requires: ppx_expect_runtime_saved_stderr, ppx_expect_runtime_saved_stdout
99
function ppx_expect_runtime_before_test (voutput, vstdout, vstderr){
10-
ppx_expect_runtime_saved_stderr = caml_ml_channels[vstderr];
11-
ppx_expect_runtime_saved_stdout = caml_ml_channels[vstdout];
12-
var output = caml_ml_channels[voutput];
13-
caml_ml_channels[vstdout] = output;
14-
caml_ml_channels[vstderr] = output;
10+
ppx_expect_runtime_saved_stderr = caml_ml_channel_redirect(vstderr, voutput);
11+
ppx_expect_runtime_saved_stdout = caml_ml_channel_redirect(vstdout, voutput);
1512
return 0;
1613
}
1714

1815
//Provides: ppx_expect_runtime_after_test
19-
//Requires: caml_ml_channels
16+
//Requires: caml_ml_channel_restore
2017
//Requires: ppx_expect_runtime_saved_stderr, ppx_expect_runtime_saved_stdout
2118
function ppx_expect_runtime_after_test (vstdout, vstderr){
22-
caml_ml_channels[vstdout] = ppx_expect_runtime_saved_stdout;
23-
caml_ml_channels[vstderr] = ppx_expect_runtime_saved_stderr;
19+
caml_ml_channel_restore(vstdout,ppx_expect_runtime_saved_stdout);
20+
caml_ml_channel_restore(vstderr,ppx_expect_runtime_saved_stderr);
2421
return 0;
2522
}
2623

2724
//Provides: ppx_expect_runtime_out_channel_position
28-
//Requires: caml_ml_channels
25+
//Requires: caml_ml_channel_get
2926
function ppx_expect_runtime_out_channel_position(chan){
30-
var info = caml_ml_channels[chan];
27+
var info = caml_ml_channel_get(chan);
3128
return info.offset
3229
}
3330

0 commit comments

Comments
 (0)