Răsfoiți Sursa

use rev_file_hash instead of rev_hash_s for eval position reporting so that it reports original file instead of unique_full_path

this also fixes positions multibyte utf8 files because original files are stored in lexer cache
Dan Korostelev 8 ani în urmă
părinte
comite
c306e58a03
2 a modificat fișierele cu 3 adăugiri și 3 ștergeri
  1. 2 2
      src/macro/eval/evalExceptions.ml
  2. 1 1
      src/macro/eval/evalStdLib.ml

+ 2 - 2
src/macro/eval/evalExceptions.ml

@@ -88,7 +88,7 @@ let uncaught_exception_string v p extra =
 	(Printf.sprintf "%s : Uncaught exception %s%s" (format_pos p) (value_string v) extra)
 	(Printf.sprintf "%s : Uncaught exception %s%s" (format_pos p) (value_string v) extra)
 
 
 let get_exc_error_message ctx v stack p =
 let get_exc_error_message ctx v stack p =
-	let pl = List.map (fun env -> {pfile = rev_hash_s env.env_info.pfile;pmin = env.env_leave_pmin; pmax = env.env_leave_pmax}) stack in
+	let pl = List.map (fun env -> {pfile = rev_file_hash env.env_info.pfile;pmin = env.env_leave_pmin; pmax = env.env_leave_pmax}) stack in
 	let pl = List.filter (fun p -> p <> null_pos) pl in
 	let pl = List.filter (fun p -> p <> null_pos) pl in
 	match pl with
 	match pl with
 	| [] ->
 	| [] ->
@@ -104,7 +104,7 @@ let build_exception_stack ctx environment_offset =
 	ctx.exception_stack <- List.map (fun env ->
 	ctx.exception_stack <- List.map (fun env ->
 		env.env_in_use <- false;
 		env.env_in_use <- false;
 		env.env_debug.timer();
 		env.env_debug.timer();
-		{pfile = rev_hash_s env.env_info.pfile;pmin = env.env_leave_pmin; pmax = env.env_leave_pmax},env.env_info.kind
+		{pfile = rev_file_hash env.env_info.pfile;pmin = env.env_leave_pmin; pmax = env.env_leave_pmax},env.env_info.kind
 	) d
 	) d
 
 
 let catch_exceptions ctx ?(final=(fun() -> ())) f p =
 let catch_exceptions ctx ?(final=(fun() -> ())) f p =

+ 1 - 1
src/macro/eval/evalStdLib.ml

@@ -583,7 +583,7 @@ module StdCallStack = struct
 			| _ :: _ :: envs -> envs (* Skip calls to callStack() and getCallStack() *)
 			| _ :: _ :: envs -> envs (* Skip calls to callStack() and getCallStack() *)
 			| _ -> envs
 			| _ -> envs
 		in
 		in
-		make_stack (List.map (fun env -> {pfile = rev_hash_s env.env_info.pfile;pmin = env.env_leave_pmin; pmax = env.env_leave_pmax},env.env_info.kind) envs)
+		make_stack (List.map (fun env -> {pfile = rev_file_hash env.env_info.pfile;pmin = env.env_leave_pmin; pmax = env.env_leave_pmax},env.env_info.kind) envs)
 	)
 	)
 
 
 	let getExceptionStack = vfun0 (fun () ->
 	let getExceptionStack = vfun0 (fun () ->