@@ -324,11 +324,12 @@ let link ~output ~linkall ~mklib ~toplevel ~files ~resolve_sourcemap_url ~source
324324 let sm_for_file = ref None in
325325 let ic = Line_reader. open_ file in
326326 let skip ic = Line_reader. drop ic in
327+ let line_offset = Line_writer. lnum oc in
327328 let reloc = ref [] in
328329 let copy ic oc =
329330 let line = Line_reader. next ic in
330331 Line_writer. write ~source: ic oc line;
331- reloc := (Line_reader. lnum ic, Line_writer. lnum oc) :: ! reloc
332+ reloc := (Line_reader. lnum ic, Line_writer. lnum oc - line_offset ) :: ! reloc
332333 in
333334 let rec read () =
334335 match Line_reader. peek ic with
@@ -432,7 +433,7 @@ let link ~output ~linkall ~mklib ~toplevel ~files ~resolve_sourcemap_url ~source
432433 Line_writer. write_lines oc content);
433434 (match ! sm_for_file with
434435 | None -> ()
435- | Some x -> sm := (x, ! reloc) :: ! sm);
436+ | Some x -> sm := (x, ! reloc, line_offset ) :: ! sm);
436437 match ! build_info, build_info_for_file with
437438 | None , None -> ()
438439 | Some _ , None -> ()
@@ -446,10 +447,10 @@ let link ~output ~linkall ~mklib ~toplevel ~files ~resolve_sourcemap_url ~source
446447 | None -> ()
447448 | Some (file , init_sm ) ->
448449 let sections =
449- List. rev_map ! sm ~f: (fun (sm , reloc ) ->
450+ List. rev_map ! sm ~f: (fun (sm , reloc , offset ) ->
450451 let tbl = Hashtbl. create 17 in
451452 List. iter reloc ~f: (fun (a , b ) -> Hashtbl. add tbl a b);
452- ( { Source_map.Index. gen_line = 0 ; gen_column = 0 }
453+ ( { Source_map.Index. gen_line = offset ; gen_column = 0 }
453454 , `Map (Source_map.Standard. filter_map sm ~f: (Hashtbl. find_opt tbl)) ))
454455 in
455456 let sm =
0 commit comments