Skip to content

Commit cb33b38

Browse files
committed
refactor ext_buffer, avoid magic variable names
1 parent 5a36552 commit cb33b38

File tree

3 files changed

+26
-7
lines changed

3 files changed

+26
-7
lines changed

jscomp/bsb/bsb_ninja_rule.ml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -135,15 +135,15 @@ let make_custom_rules
135135
if read_cmi then
136136
Ext_buffer.add_string buf " -bs-read-cmi";
137137
if is_dev then
138-
Ext_buffer.add_string buf " $g_dev_incls";
139-
Ext_buffer.add_string buf " $g_lib_incls" ;
138+
Ext_buffer.add_ninja_prefix_var buf Bsb_ninja_global_vars.g_dev_incls;
139+
Ext_buffer.add_ninja_prefix_var buf Bsb_build_schemas.g_lib_incls;
140140
if is_dev then
141-
Ext_buffer.add_string buf " $g_dpkg_incls";
141+
Ext_buffer.add_ninja_prefix_var buf Bsb_ninja_global_vars.g_dpkg_incls;
142142
if not has_builtin then
143143
Ext_buffer.add_string buf " -nostdlib";
144144
Ext_buffer.add_string buf " $warnings $bsc_flags";
145145
if has_gentype then
146-
Ext_buffer.add_string buf " $gentypeconfig";
146+
Ext_buffer.add_ninja_prefix_var buf Bsb_ninja_global_vars.gentypeconfig;
147147
Ext_buffer.add_string buf " -o $out $in";
148148
if postbuild then
149149
Ext_buffer.add_string buf " $postbuild";
@@ -159,15 +159,15 @@ let make_custom_rules
159159
Ext_buffer.add_string buf (Ext_filename.maybe_quote x);
160160
);
161161
if has_pp then
162-
Ext_buffer.add_string buf " $pp_flags";
162+
Ext_buffer.add_ninja_prefix_var buf Bsb_ninja_global_vars.pp_flags;
163163
(match has_reason_react_jsx, reason_react_jsx with
164164
| false, _
165165
| _, None -> ()
166166
| _, Some Jsx_v3
167167
-> Ext_buffer.add_string buf " -bs-jsx 3"
168168
);
169169
if has_ppx then
170-
Ext_buffer.add_string buf " $ppx_flags";
170+
Ext_buffer.add_ninja_prefix_var buf Bsb_ninja_global_vars.ppx_flags;
171171
Ext_buffer.add_string buf " $bsc_flags -o $out -bs-syntax-only -bs-binary-ast $in";
172172
Ext_buffer.contents buf
173173
in

jscomp/ext/ext_buffer.ml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,19 @@ let add_char_string b c s =
121121
Ext_bytes.unsafe_blit_string s 0 b_buffer (b_position + 1) s_len;
122122
b.position <- new_position
123123

124+
(* equivalent to add_char " "; add_char "$"; add_string s *)
125+
let add_ninja_prefix_var b s =
126+
let s_len = String.length s in
127+
let len = s_len + 2 in
128+
let new_position = b.position + len in
129+
if new_position > b.length then resize b len;
130+
let b_buffer = b.buffer in
131+
let b_position = b.position in
132+
Bytes.unsafe_set b_buffer b_position ' ' ;
133+
Bytes.unsafe_set b_buffer (b_position + 1) '$' ;
134+
Ext_bytes.unsafe_blit_string s 0 b_buffer (b_position + 2) s_len;
135+
b.position <- new_position
136+
124137

125138
(* let add_bytes b s = add_string b (Bytes.unsafe_to_string s)
126139

jscomp/ext/ext_buffer.mli

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,13 @@ val add_string_char :
108108
string ->
109109
char ->
110110
unit
111-
111+
112+
val add_ninja_prefix_var :
113+
t ->
114+
string ->
115+
unit
116+
117+
112118
val add_char_string :
113119
t ->
114120
char ->

0 commit comments

Comments
 (0)