diff options
| author | Alain Frisch <alain@frisch.fr> | 2014-09-24 09:24:36 +0000 |
|---|---|---|
| committer | Alain Frisch <alain@frisch.fr> | 2014-09-24 09:24:36 +0000 |
| commit | f8ca8db7bba2d10291550cacc4047fb11f438d89 (patch) | |
| tree | 61606221b1156476ac9699e95bf46e57d7ad3af4 | |
| parent | 45e9ebde3c75acfb2f83cba1e14dac48e1a6d9d1 (diff) | |
| download | ocaml-f8ca8db7bba2d10291550cacc4047fb11f438d89.tar.gz | |
#6577: fix performance of %S format.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@15320 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
| -rw-r--r-- | stdlib/camlinternalFormat.ml | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/stdlib/camlinternalFormat.ml b/stdlib/camlinternalFormat.ml index 109ca92958..d3bb7a780e 100644 --- a/stdlib/camlinternalFormat.ml +++ b/stdlib/camlinternalFormat.ml @@ -1266,7 +1266,11 @@ let fix_int_precision prec str = (* Escape a string according to the OCaml lexing convention. *) let string_to_caml_string str = - String.concat (String.escaped str) ["\""; "\""] + let str = String.escaped str in + let l = String.length str in + let res = Bytes.make (l + 2) '\"' in + String.unsafe_blit str 0 res 1 l; + Bytes.unsafe_to_string res (* Generate the format_int/int32/nativeint/int64 first argument from an int_conv. *) |
